现在的位置: 首页 > 综合 > 正文

JVM之上的Python Web框架

2018年02月01日 ⁄ 综合 ⁄ 共 2399字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.