【问题标题】:Werkzeug in General, and in Python 3.1Werkzeug 在一般情况下,在 Python 3.1 中
【发布时间】:2010-12-04 04:01:48
【问题描述】:

我一直在努力研究**(s)** 一个人可以使用 Python 开发 Web 应用程序。作为参考,我们使用的是 RHEL 64bit、apache、mod_wsgi。

历史:

  1. PHP + MySQL 多年前
  2. PHP + Python 2.x + MySQL 最近和当前
  3. Python + PostgreSQL 正在研究它

我们使用一个很棒的库在 PHP 和 Python 之间进行通信(PHP 中的接口,Python 中的后端)...但是,随着即将开始的更大项目,使用 100% python 可能非常有利。

我们通常不希望有一个单一的框架来指示事情是如何完成的。一组有用的帮助程序和实用程序是首选(无论是 PHP 还是 Python)。

问题 1:

在阅读经验丰富的 Python 用户的大量答案时,我看到 Werkzeug 多次推荐。如果几个有直接使用 Werkzeug 开发专业 Web 应用程序的经验的人可以评论(尽可能详细地了解他们的手指感觉)他们为什么使用它,为什么喜欢它,以及任何需要注意的地方,我会很高兴。

问题 2:

是否有支持 Python 3.1.1 的 Werkzeug 版本。我已经在 Apache 2.2 上使用 Python 3.1.1 成功安装了 mod_wsgi

如果没有版本,升级它以在 Python 3.1 上工作需要什么?

注意:我在 Werkzeug 源代码上运行了2to3,它在没有

的情况下进行 python 编译

编辑:

我们开始的项目要到将近一年后才能完成。到那时,我猜 Python 3.X 会更加主流。此外,考虑到我们正在运行应用程序(而不是分发它),任何人都可以评论现在解决一些 Python 3 问题的可行性,这样当一年后到来时,我们或多或少已经在那里?

感谢您的想法!

【问题讨论】:

  • 太晚了,我无法详细回答,但是,非常概括地说:我喜欢它,因为它很丰富但完全模块化,没有发现任何问题,而且我没有在任何 Python 上尝试过3 版本(是否有 Python 3.* 的 PostgreSql 接口...?)。
  • 实际上,这是我们尝试使用 Python 3.x 的(众多)原因之一:python.projects.postgresql.org 一个为 Python 3 设计的出色的 Python 驱动程序。

标签: python python-3.x werkzeug


【解决方案1】:

用于 Python 3.x 的 mod_wsgi 也没有准备好。 Python 3.x 的 WSGI 还没有令人满意的定义; WEB-SIG 仍在抨击这些问题。 mod_wsgi 的目标是猜测其中可能包含的内容,但很可能对规范和标准库进行更改。您今天使用 Python 3.1 编写的任何 Web 应用程序都可能在未来出现故障。

这有点混乱。今天,对于 web 应用程序,您实际上只能使用 Python 2.x。

【讨论】:

  • Python WEB-SIG 可能会一直争论这个问题,但是 mod_wsgi 和 CherryPy WSGI 服务器都将使用 Python 3.X 上 WSGI 的事实标准发布 Python 3.X。 Python 3.X 中的 wsgiref 模块也使用相同的东西,因此现在部分是事实上的标准。请参阅“code.google.com/p/modwsgi/wiki/SupportForPython3X”。
  • 哦,快乐。真是一团糟。并不是提议的“事实上的”标准 (*) 有什么问题,而是 Python-on-the-web 真正不需要的是更多碎片。 *:好吧,除了能够返回 ISO-8859-1 编码的本机字符串,这似乎是一场等待发生的意外。仍然没有解决 PATH_INFO 问题,但是我已经放弃了任何人解决这个问题......
  • 嗨 bobince。提醒一下,我们现在可以在 Python 3 和 mod_wsgi 上使用了。我们将密切关注标准的巩固,并在需要时进行调整。但明年会有很多新的应用程序代码编写,以后不必重新编写。
【解决方案2】:

我没用过Werkzeug,所以只能回答问题2:

不,Werkzeug 不适用于 Python 3。事实上,到目前为止,很少有人在 Python 3 上工作。移植并不难,但要等到所有第三方库都移植完毕后才能移植,所以进度很慢。

setuptools 是一个很大的障碍,它是一个非常受欢迎的软件包。 Setuptools 未维护,但有一个维护的分支,称为 Distribute。就在一两周前,Distribute 发布了 Python 3 支持。我希望对 Python 3 的包支持现在能够得到支持。但是,像 Werkzeug 这样的大型项目要移植到 Python 3 还需要很长时间,至少几个月,可能一年左右。

【讨论】:

    【解决方案3】:

    我只能回答第一个问题:

    我开始将它用于一些小型网站,但现在开始使用它重新设计更大的应用程序。为什么选择 Werkzeug?模块化概念真的很有帮助。您可以根据需要挂接模块,轻松识别上下文,并免费获得良好的请求文件处理,无需将其存储在内存中即可处理 300mb 以上的文件。

    缺点...好吧,有时模块化需要一些预先考虑(django f.ex. 一次性为您提供所有内容,但在那里剥离内容很难)但对我来说它工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 2011-11-22
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多