与Python 3.1和py-postgresql兼容的Web框架
我开始学习Python,写了一个小应用程序,使用的是Python 3.1和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的,只是我没搞明白?
4 个回答
0
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框架声称“Bottle可以在Python 2.5及以上版本和3.x(使用2to3)中运行”,所以我打算试试这个。
3
更新:这个回答在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的代码。
这是#373945 什么网页开发框架支持Python 3?的重复问题。