在Jython上开发Django有问题吗?

时间:2008-11-24 14:17:17

标签: python django jvm jython

背景

我正在和朋友一起构建一个公平的Web应用程序,我们决定在Python上使用Django框架。 Django为我们提供了许多我们需要的功能,所以请不要建议其他框架。

我遇到的唯一决定是,我们是否使用Python或Jython来开发我们的应用程序。现在我对Java很熟悉,可能会受益于JDK中的库。我知道最小的Python,但是我使用这个项目作为学习新语言的机会 - 所以大部分工作都是用Python编写的。

Jython的吸引力当然是JVM。启用python / django的web主机的数量极少 - 而我假设我可以在各种主机上删除jython / django应用程序。这不是一个大规模的设计决定,但我认为仍然需要决定。我真的更喜欢jython而不是python,仅仅是jvm可访问性。

问题

与常规python相比,Jython有很多限制吗?在jython上运行django会导致问题吗? Jython团队与Python一起发布更新的速度有多快? Django会像Jython上的广告一样工作吗(预配置非常少)?

决定

感谢您提供的有用评论。我认为我要做的是在Jython中开发JVM支持 - 但是尝试只使用Python代码/库。可移植性不是主要问题因此,如果我需要JDK中的库(python中不易提供),我将使用它。只要Django得到全面支持,我很高兴。

4 个答案:

答案 0 :(得分:3)

Django做work on Jython,虽然你需要使用Jython的开发版本,因为技术上Jython 2.5仍处于测试阶段。但是,Django 1.0及以上应该可以不加修改地工作。

至于你是否应该使用常规的Python实现或Jython,我想说的是你是否更喜欢使用所有的Java库或者所有的Python库。此时,您可以预期Python标准库中的几乎所有内容都可以与Jython一起使用,但仍有大量第三方软件包无法使用,尤其是C扩展模块。我个人建议使用普通的Python,但是如果你有大量的JVM经验并且想要坚持你所知道的,那么我可以尊重它。

至于寻找Python托管,this page might be helpful

答案 1 :(得分:3)

我想如果你喜欢Django,你也会喜欢Python。在你学习新语言的过程中,不要混淆过去语言的经验(太常见)。只有在掌握Python之后,您才有经验判断混合语言是否优于任何一种语言。

确实很少有便宜的主机提供Django预装;但鉴于它与谷歌的应用引擎最相似的环境,这很可能会发生变化。 (大多数GAE项目都可以在Django上运行)

答案 2 :(得分:1)

我最近在业余时间开始研究开源桌面项目。所以这可能不适用。我遇到了同样的问题。我决定在python(和Django)中尽可能多地编写代码并定位所有平台CPython,Jython和IronPython。

然后,我决定编写与不同实现的库接口的插件(例如,不同的GUI库)。

为什么呢?我很早就决定了我的代码的长寿可能取决于不仅针对CPython而且还针对虚拟机。为了今天的目的,CPython是因为速度而走的路,但谁知道明天。如果您的代码足够灵活,则可能不必决定定位代码。

这种方法的缺点是你将有更多的代码来创建和维护。

答案 3 :(得分:0)

Django应该是与jython兼容的sinc版本1.0。

This tutorial有点过时,但从那里你可以看到没有特殊问题。