写点什么

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:112102
用户头像

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

关注

评论

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

LogUtil日志工具类的封装

Changing Lin

10月月更

实作中的 std::is_detected 和 Detection Idioms (C++17)

hedzr

算法 c++17 Detection Idioms

从零开始,基于焱融 SaaS 数据服务平台搭建私有 WordPress blog

焱融科技

云计算 技术 分布式 高性能 文件存储

管理者如何授权

石云升

职场经验 10月月更

025云原生之Prometheus介绍

穿过生命散发芬芳

云原生 10月月更

Go语言的设计哲学

不负青春不负己🤘

Go 语言 语言设计

ES索引mpping字段数据类型更改过程

李印

elasticsearch 经验分享

如何呈现一款软件产品的介绍页面

boshi

创业 学习笔记

和12岁小同志搞创客开发:如何驱动LCD1602液晶显示屏?

不脱发的程序猿

少儿编程 智能硬件 创客开发 LCD1602液晶显示屏

dddd

askuy

[ 职场 ] 发现问题容易

baiyutang

职场 10月月更

Docker Desktop 如何运行第一个 Docker 项目

HoneyMoose

模块一作业:微信业务架构图与学生管理系统毕设架构设计

dean

架构实战营

聊聊开发日常的效率提升工具(全)

官方线索|1024和腾讯课堂一起摇霸符

搬砖人

1024我在现场

机器人主板需求配置参数有哪些呢?

双赞工控

HarmonyOS 3.0.0开发者预览版全新发布

科技汇

硝烟弥漫的安全战场,只等一位超级英雄登场

脑极体

架构实战营-hw1

WWH

架构实战营

微信对外部搜索引擎开放:自媒体平台开放搜索引擎有哪些意义

石头IT视角

聊一聊利用Dijkstra求有向图的最短路径

Regan Yue

算法 10月月更

Python 编码规范

不负青春不负己🤘

Python Pythonic 编码规范

云栖发布|阿里云消息队列 RocketMQ 5.0:消息、事件、流融合处理平台

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件 云栖大会

在线文字转图片工具

入门小站

工具

中文字节长度引起的数据丢失

看山

Netty 10月月更

北鲲云超算平台能够为CAE行业发展提供哪些支持?

北鲲云

微信朋友圈的高性能复杂度分析

Beyond Ryan

架构实战营

网络安全:SSRF+XXE漏洞挖掘笔记

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

作业六:电商微服务系统设计

紫云

HMS的三年一诺,开放出璀璨星河

脑极体

nil,看这篇就够了

Rayjun

Go 语言 nil

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