python 3.1およびpy-postgresqlと互換性のあるWebフレームワーク
-
07-07-2019 - |
質問
Python 3.1とpy-postgresqlを使用して小さなアプリケーションを作成して、Pythonの学習を開始しました。次に、Webアプリケーションに変換したいのです。
しかし、web-py、django、zopeなどのほとんどのフレームワークは、まだPython 2.xに基づいているようです。残念ながら、py-postgresqlはPython 2.xと互換性がありません。
すべてのクラスを書き換えて、py-postgresqlをweb-pyなどでサポートされているものに置き換える必要がありますか、またはPython 3.1と互換性のあるフレームワークがありますか?
またはpy-postgresqlは2.xと互換性がありますが、私はそれを理解していませんか?
解決
更新:この回答は2011年に古くなっています。
Pythonをまったく学ぼうとして新しい道を切り開くことに興味がない限り、プロジェクトをPython 2.xに変換することをお勧めします。コードが、広くサポートされているDB-APIインターフェースにはない py-postgresql
機能をあまり使用しないことを願っています。
Python 2.x DB-API互換インターフェイスの場合は psycopg2
を参照するか、より高レベルの SQLAlchemy
svnリリースでは、 psycopg2
または py-postgresql
を互換的に使用できます。
Python 3.xを自動的に変換する 3to2 にも興味があるかもしれません可能な場合は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 Webサイトには、フレームワークへの多くのポインターがあります。 ボトルフレームワークは、「ボトルはPython 2.5+および3.x(2to3を使用)で実行されます」と主張しています。試してみます。
これは、Python 3で実装されたトルネードのWSGIサーバーの簡易バージョンです。
http://code.activestate.com/recipes/576906/
おそらくいくつかのバグがありますが、開始することができます
まだ公式にはリリースされていませんが、現在、Python 3.1.1を使用したCherryPy 3.2.0rc1で「遊んで」おり、まだ問題はありません。 py-postgresqlでは使用していませんが、なぜ機能しないのかわかりません。
これが役立つことを願って、 アラン