Web框架与python 3.1和py-postgresql兼容
-
07-07-2019 - |
题
我已经开始通过使用Python 3.1和py-postgresql编写一个小应用程序来学习Python。现在我想把它变成一个Web应用程序。
但似乎大多数框架如web-py,django,zope仍然基于Python 2.x.不幸的是,py-postgresql与Python 2.x不兼容。
我是否必须重写所有类并使用web-py等支持的内容替换py-postgresql,或者是否有与Python 3.1兼容的框架?
或许py-postgresql与2.x兼容,但我没弄明白?
解决方案
更新:这个答案在2011年已经过时了。
除非你有兴趣在尝试学习Python时开辟新的路径,否则我建议你将项目转换为Python 2.x.希望您的代码不会使用太多在广泛支持的DB-API接口中找不到的 py-postgresql
功能。
您应该查看 psycopg2
以获取Python 2.x DB-API兼容接口,或者如果您想要更高级别 SQLAlchemy
在svn版本中可以互换地使用 psycopg2
或 py-postgresql
。
您可能也对 3to2 感兴趣,它会自动转换Python 3.x尽可能使用Python 2.x代码编写代码。
其他提示
我刚刚发现了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框架声称“使用Python 2.5+和3.x(使用2to3)运行瓶子”所以我会尝试一下。
即使它尚未正式发布,我目前正在使用带有Python 3.1.1的CherryPy 3.2.0rc1进行游戏,并且还没有遇到任何问题。没有使用它与py-postgresql,但我不明白为什么它不应该工作。
希望这有帮助, 艾伦