【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

FOTSL:端到端的文本检测与识别方法的原理方法与优势

合合技术团队

人工智能 场景 端口 文本检测 文本识别

阿里云机器学习平台 PAI宣布集成国产深度学习框架 OneFlow

阿里云大数据AI技术

机器学习 阿里云 oneflow

不愧是阿里内部Spring Boot笔记,从头到尾全是干货

小小怪下士

Java spring 程序员 阿里 springboot

Docker PHP 入门实践(一)

sunmking

php 实战案例 Docker 镜像 11月月更

Redis核心技术

苏格拉格拉

redis 架构 持久化 部署 集群

Dubbo核心技术

苏格拉格拉

分布式 微服务 dubbo RPC 集群

喜讯!麦聪DaaS平台荣获“2022行业信息化优秀产品”奖

雨果

数字化转型 DaaS数据即服务 麦聪软件

PingCAP 推出 TiDB Cloud Serverless Tier BETA 版

PingCAP

TiDB

Docker PHP 入门实践 (三)

sunmking

php Docker thinkphp 11月月更

产品网站的FAQ页面该如何编辑?

Baklib

产品 FAQ

云栖大会开源重磅升级!PolarDB-X v2.2: 企业级和国产化适配

阿里云数据库开源

阿里云 polarDB 云栖大会 PolarDB-X 阿里云数据库

最新的国内低代码开发平台排名,你知道几个?

优秀

低代码 低代码开发平台 低代码平台

python数据分析-开篇什么是数据分析

AIWeker

Python 人工智能 数据分析 11月月更

深圳中心化区块链交易所开发安全的重要性

W13902449729

区块链交易所搭建

oracle中计算两个日期的相差天数、月数、年数等等

默默的成长

oracle 前端 11月月更

HTML学习笔记(一)

lxmoe

html 前端 学习笔记 11月月更

介绍:什么是智能合约dapp系统开发一站式服务

W13902449729

一文带你详细了解JVM运行时内存

程序员小毕

Java 程序员 面试 后端 JVM

Redis数据结构

苏格拉格拉

redis 缓存 Redis 数据结构

RocketMQ核心技术

苏格拉格拉

RocketMQ 消息队列 消息中间件 微服务框架

1年Java经验,信心满满出去面试,被问麻了...

Java永远的神

spring 程序员 后端 JVM Java 面试

智采云火了的背后,是企业降本增效的刚需

ToB行业头条

QuTrunk与Paddle结合实践--VQA算法示例

启科量子开发者官方号

Python 人工智能 ai框架 量子计算 量子编程

Baklib|如何搭建在线帮助中心站点?

Baklib

Oracle表空间设计基本原则

默默的成长

oracle 前端 11月月更

Oracle 开发规范(一)

默默的成长

oracle 前端 11月月更

游戏链改NFT系统开发Web3技术

薇電13242772558

web3

Docker PHP 入门实践(二)

sunmking

php Docker 实战 11月月更

并发编程中的锁、条件变量和信号量

C++后台开发

Go 并发编程 linux开发 C++开发

uniapp引入 iconfont

源字节1号

微信小程序 软件开发 前端开发 后端开发

Wallys/QCN9074 WiFi 6E Card OpenWRT, IPQ6010, IPQ6018,802.11ax,industrial m.2 card/QUECTEL RM500Q-GL

wallys-wifi6

IPQ6010 ipq6018 QCN9074

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