与Python 3.1和py-postgresql兼容的Web框架

1 投票
4 回答
1716 浏览
提问于 2025-04-15 14:19

我开始学习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

这里有一个用Python 3实现的简化版tornado的WSGI服务器。

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

可能有一些bug,但可以帮助你入门。

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版本中,它可以交替使用psycopg2py-postgresql

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

这是#373945 什么网页开发框架支持Python 3?的重复问题。

撰写回答