2009-09-14 28 views
1

我已经开始通过使用Python 3.1和py-postgresql编写一个小型应用程序来学习Python。现在我想把它变成一个Web应用程序。与python 3.1兼容的web框架和py-postgresql

但似乎大多数框架,如web-py,django,zope仍然基于Python 2.x.不幸的是,py-postgresql与Python 2.x不兼容。

我是否必须重写所有的类,并将py-postgresql替换为web-py等支持的内容,还是存在与Python 3.1兼容的框架?

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

+0

的可能重复[什么是Web开发框架,支持Python的3?](http://stackoverflow.com/questions/373945/what-web-development-frameworks-support-python -3) – 2011-09-26 08:14:04

回答

3

更新:这个答案是过时的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?

1

重复我刚才发现了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)”,所以我会试一试。

+4

没有更新WSGI来定义它应该如何在Python 3.X下运行。当任何对WSGI的更新发布时,任何可能需要更改任何Python框架声明在Python 3.X上遵守WSGI的规定。这意味着用户代码是否需要更改,取决于框架将用户代码与底层WSGI接口隔离的程度。因此,在Python 3.X上执行与WSGI相关的任何事情时,需要谨慎。 – 2009-09-19 04:10:20

0

即使它没有正式发布呢,我目前正在用Python 3.1.1与CherryPy 3.2.0rc1“玩耍”,并且目前还没有问题。没有使用py-postgresql,但我不明白为什么它不应该工作。

希望这有助于 艾伦