【问题标题】:web framework compatible with python 3.1 and py-postgresql与 python 3.1 和 py-postgresql 兼容的 web 框架
【发布时间】:2010-11-28 05:21:48
【问题描述】:

我通过使用 Python 3.1 和 py-PostgreSQL 编写一个小型应用程序开始学习 Python。现在我想把它变成一个网络应用程序。

但是好像web-py、Django、zope等大部分框架还是基于Python 2.x。不幸的是,py-PostgreSQL 与 Python 2.x 不兼容。

我是否必须重写我的所有类并将 py-PostgreSQL 替换为 web-py 等支持的东西,或者是否有与 Python 3.1 兼容的框架?

或者也许py-PostgreSQL兼容2.x但我没弄明白?

【问题讨论】:

标签: python web-applications python-3.x wsgi


【解决方案1】:

更新:此答案在 2011 年已过时。

除非您有兴趣在尝试学习 Python 时开辟新道路,否则我建议您将项目转换为 Python 2.x。希望您的代码不会使用太多在广泛支持的 DB-API 接口中找不到的 py-postgresql 功能。

您应该查看psycopg2 以获得Python 2.x DB-API 兼容接口,或者如果您想使用更高级别的SQLAlchemy,在svn 版本中可以互换使用psycopg2py-postgresql

您可能还对3to2 感兴趣,它会在可能的情况下自动将 Python 3.x 代码转换为 Python 2.x 代码。

#373945 What web development frameworks support Python 3? 的副本

【讨论】:

    【解决方案2】:

    我刚刚发现了 WSGI:一个 WSGI 兼容的应用程序也可以用 Python 3.1 编写。以下代码在 Python 3.1 中运行良好:

    def webapp(environment, start_response):
        start_response('200 OK', [('content-type', 'text/html')])
        return ['Hello, World!']
    
    if __name__ == '__main__':
        from wsgiref import simple_server
        simple_server.make_server('', 8080, webapp).serve_forever()
    

    WSGI 网站有很多指向框架的指针。 Bottle framework 声称“Bottle 使用 Python 2.5+ 和 3.x(使用 2to3)运行”,所以我会尝试一下。

    【讨论】:

    • 没有更新 WSGI 来定义它应该如何在 Python 3.X 下运行。任何声称在 Python 3.X 上符合 WSGI 的 Python 框架很可能都需要在 WSGI 的任何更新发布时进行更改。这是否意味着用户代码需要更改,将取决于框架将用户代码与底层 WSGI 接口隔离的程度。因此,在 Python 3.X 上做任何与 WSGI 相关的事情时都需要谨慎。
    【解决方案3】:

    这是在 python 3 中实现的 tornado 的 WSGI 服务器的简化版本。

    http://code.activestate.com/recipes/576906/

    可能有一些错误,但可以让你开始

    【讨论】:

      【解决方案4】:

      尽管它还没有正式发布,但我目前正在使用 CherryPy 3.2.0rc1 和 Python 3.1.1 并没有遇到任何问题。没有用 py-postgresql 使用它,但我不明白为什么它不应该工作。

      希望这会有所帮助, 艾伦

      【讨论】:

        猜你喜欢
        • 2011-07-07
        • 1970-01-01
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多