写点什么

JVM 之上的 Python Web 框架

  • 2008-01-22
  • 本文字数:2062 字

    阅读完需:约 7 分钟

Python ,是一种面向对象的动态语言,已经出现了很多年。如同 Ian Bicking 所指出的,在 Python 的历史中有很多 web 框架可供选择(例如 Pylons,TurboGears,CherryPy,Zope,Django 等等),这使得开发者难以做出选择,

很久很久(比绝大多数现存的框架要久)以来,人们一直在抱怨在 Python 中 Web 框架太多。

最近 Django 在 Python 和 Java 的世界中风生水起 > Django 是一个高级 Python Web 框架,它鼓励快速开发和干净、实用的设计。

Django 开发了一个快速发展的在线新闻运营网站并且使用了两年,其设计目标是处理两个挑战:一个新闻编辑室的强制交付日期和开发该编辑室的有经验的 Web 开发者的紧迫需求。Django 使你可以快速构建高性能的、优雅的 Web 应用。
Django 非常关注于自动化并且坚持 DRY(不要重复你自己)原则。

在 JVM 方面存在 Jython

由 100% 纯 Java 实现的高级的、动态的、面向对象的语言 Python,与 Java 平台无缝集成。它允许你在任何 Java 平台上运行 Python。

Jython 从 2.1 版本发展到 2.2 用了将近 6 年,但是在最近几个月 Jython 已经经历了两个版本候选以及另一个稳定版本,目前的版本是 2.2.1。Jython 开发人员正在努力工作开发 Jython 2.5,其目标是让 Jython 与 CPython 2.5 同步并提供一个更干净而一致的代码基础。

Jython 2.5 的一个次要目标是力图使得某些 CPython 框架,特别是 Web 框架可以在 Jython 上工作,例如:

  • Django
  • Pylons
  • TurboGears
  • Twisted

InfoQ 最近有幸采访了 Jim Baker,一个 python 传播者与 Django on Jython (DoJ) 的贡献者,以期得知将会发布什么以及何时发布。

Django on Jython 的预期发布日期是什么?

今年。Jython 的下一个版本肯定会出现。请看#2 关于 Jython 的计划。Django 已经可以工作了,只有一些小的变化, 谢谢很多朋友为鉴别(微小的)Jython 的不兼容性所做的很多工作。现在大多数我们已经鉴别的问题实际上仅仅发生在测试中,Django 对于 Python 做了某种假设,而那些假设不适用于 Jython。例如有这样一个假设:哈希算法与字典的实现算法是一样的,因为我们使用 Java 的哈希表 (ConcurrentHashMap),所以这个假设是不成立的。尽管那只是测试过程中的一个极端情况,实际上 Django 并不关心哈希算法,我们仍然 计划通过执行所有的测试来证明没有问题(按需修复问题)。

Django on Jython 需要 ****Jython 的什么版本? > Jython 2.5 —— 相当于 CPython 2.5(或者方便的叫做 Python!)是我们在 Jython 项目中的目标。实际上目前项目进展十分迅速。我们有一个 2.5 的编译器可供实验用途,由于我 们有更多的人来测试这个编译器,它变得越来越健壮了。这个“新编译器”是在一个由我指导的 Google 代码之夏(Google Summer of Code,译者注:Google Summer of Code 是一个年度项目,最初于 2005 年 5 月至 8 月举办,期间 Google 会奖励在夏天成功的完成了一个免费软件 / 开源软件的学生)项目中最早开发的。 (Bruce Eckel 在一篇博文中指出,实际上我们在9 月中旬完成了该项目!)在三月中的 Python 会议上,我们将基于目前的情况设定编译器项目的明确目标。Tobias 和我将在 Python 会议上发表我们的论文“Jython 的一个新编译器”

这个版本是否会有一个简单一些的安装?目前在你的 **博文 **中建议使用补丁,拷贝文件,等等。> 我们会有一个简单的安装!我的报告是为了说明实际上我们已经很接近这个目标。我也期望在主要的 IDE 中,例如 Eclipse 或者 Netbeans 会有插件支持,尽管现在还没有。

是否 Django 试图成为 Ruby 的 Rails 和 Groovy 的 Grails 那样的东西? > Django 提供了与这些 Web 应用框架类似的功能,而且有一个更健壮的平台。Django 支持多线程,而不象 RoR(Ruby on Rails)那样不支持,这意味着 Django 在 Java 平台上工作不需要使用大量的技巧,例如使用多重类装载器。在数据库方面我们目前支持 PostgreSQL,在 MySQL 方面也完成了一些工作。我帮助编写了 Django 的 Oracle 后端程序。我们还计划支持 Java 数据库 (Derby)。

Jim 还说有一些预先配置好的工具是很有用的,可以更容易的使用 Diango on Jython(DoJ)来实验, > 如果 Django on Jython(DoJ)有这样预先配置好的工具可供使用我会很高兴:Derby + Tomcat。开发者应该可以通过 Eclipse 或者 Netbeans 或者他们选择的某个 IDE 的插件来访问 Derby 和 Tomcat,这意味着开发者可 以直接从 IDE 中配置 Derby 和 Tomcat。工具还提供明显的向其他容器和数据库迁移的方法。也许更重要的是,这样的工具配置允许开发者容易用 DoJ 做实验,这一实验可以是构建一个 Django 应用,或者使用元组空间(tuple space,译者注:是联想存储器的一种实现,为元组提供生成的存储空间, http://c2.com/cgi/wiki?TupleSpace),规则 引擎,PDF 工具,或者其它 Java 平台上可用的重型基础结构。我认为这是 DoJ 为用户提供真正价值之处。

欲得到更多信息请访问下列链接:

查看英文原文: Python Web Framework on the JVM

2008-01-22 19:111931
用户头像

发布了 47 篇内容, 共 11.5 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

TouchDesigner Pro(可视化原型渲染设计)

Rose

FonesGo iPhone Unlocker for Mac 解决iOS设备上的各种解锁问题

Rose

Turbo Boost Switcher Pro for mac(cpu频率调节软件)

Rose

当火语言遇上抖音:开启短视频领域的变革新篇章

火语言RPA

别再盲目发小红书笔记,火语言 RPA 教你高效运营秘籍

火语言RPA

Sketch for mac(专业矢量绘图设计软件)v86-101版本合集

Rose

抖音爆款制造机:火语言的内容优化秘籍

火语言RPA

FinClip Studio 结合 DeepSeek,小程序开发速度爆表

xuyinyin

从零到一:如何构建一个智能化测试平台?

测吧(北京)科技有限公司

测试

即将发布:NJet共享内存指标展示及动态扩展

通明湖

Ummy Video Downloader for Mac(YouTube视频下载工具)v1.72免激活版

Rose

VMware Fusion Pro 11 Mac(vm虚拟机)v11.5.7中文激活版

Rose

火语言 —— 打破分享限制,拥抱开源世界

火语言RPA

不懂代码别发愁,火语言 RPA 助你轻松搞定 B 站稿件发布

火语言RPA

UniApp的性能优化

北京木奇移动技术有限公司

软件外包公司 APP外包公司 uniapp开发

CAD迷你看图 for Mac(好用的cad看图软件)v4.4.5免激活版

Rose

《流程思维》:解码流程管理本质,赋能企业高效进化

AMT企源

流程管理 流程思维

Downie 3 for Mac(好用的视频下载工具)v3.9.11中文激活版

Rose

UniApp开发的设备适配

北京木奇移动技术有限公司

APP开发 软件外包公司 uniapp开发

幂等性:如何通过设计避免重复操作的影响?

不在线第一只蜗牛

Java

DMG Canvas for mac(DMG镜像制作工具)v4.1.2激活版

Rose

小红书运营难题一键破!火语言 RPA 开启涨粉变现新捷径

火语言RPA

UniApp 应用上架的详细流程

北京木奇移动技术有限公司

APP开发 软件外包公司 H5开发

得物小程序平台设计与实践

得物技术

AI 前端

gpt4all for mac(Mac本地部署deepseek)附详细教程

Rose

Keka for Mac 下载体积小,简单易用,速度快

Rose

JVM之上的Python Web框架_Java_Craig Wickesser_InfoQ精选文章