既存の Pylons アプリケーションの移行

Pylons アプリケーションを Pyramid に移植するために、 2 つの一般的な方法 があります。1 つはゼロからスタートして、アプリケーションの振る舞いを Pyramid で表現することです。モデル、テンプレートおよび静的ファイルなどの 多くの側面はまったく変更せずに、またはほとんど変更せずに使用することが できます。コントローラやグローバル変数などの他の側面は書き直さなければ ならないでしょう。 route マップは新しい構文に移植できます。あるいは、 route を再構成する機会ととらえることもできます。

別の方法は、一度に 1 つの URL を移植することです。移植された URL を Pyramid に処理させ、移植されていない URL を Pylons に処理させます。 これを行う方法がいくつかあります:

  • Apache の中で Pyramid と Python の両方のアプリケーションを起動して、 異なる URL を異なるアプリケーションに送るために mod_rewrite を使用する。
  • INIファイルの中で paste.cascade を設定して、その結果、最初に 1 つの アプリケーションを試みて、その URL に対して “Not Found” が返る場合に もう 1 つのアプリケーションを試みるようにする (これは Pylons が静的 ファイルを返す方法です) 。
  • Pyramid ビューで Pylons アプリケーションをラップする。 pyramid.wsgiapp.wsgiapp2 を参照してください。

Cookbook の Porting Applications to Pyramid セクションも参照してください。

注意: Pyramid と Pylons アプリケーションを同時に実行することで、 データベース接続や、セッション、データファイルその他の調整といった いくつかの微妙な問題が表面化するかもしれません。 それらはこのガイドの範囲外です。

さらに、あなたは Pyramid アプリケーションを Python 2 と 3 のどちらで 書くか選ばなければなりません。Pyramid 1.3 は Python 3 で動きます。 Mako と SQLAlchemy に加えて Waitress および CherryPy HTTPサーバーも同様です (しかし PasteHTTPServer はそうではありません)。しかし、すべてのオプションの ライブラリはまだ移植されているとは限らず、あなたのアプリケーションは Python 3 に移植されていないライブラリに依存するかもしれません。

Previous topic

他の Pyramid 機能

Next topic

Traversal and URL dispatch