Pyramid FAQ

Pyramid と Pylons ウェブフレームワークの違いは何ですか?

Pyramid は新しいウェブフレームワークです。それは Pylons 1.0と「DNA を 共有しません」。 Pylons 1.x ウェブフレームワークは Pylons プロジェクトによって無期限に メンテナンスされます。いずれは Pyramid への容易な移行を目的とした Pylons 1.1 のリリースがあるかもしれません。しかし、2011年1月31日の Pyramid 1.0 のリリース時点で、 Pylons ウェブフレームワークは事実上の 「レガシー」ステータスに変更されました。

既存の Pylons 1.0 コードは、 Pyramid の「内部で」 fallback ハンドラを使って既存の Pylons アプリケーションにリクエストを 送ることで実行できるでしょう。fallback ハンドラ内で実行される場合、 Pylons 1.0 アプリケーションは Pyramid に断片的に移植されるかもしれません。 個々のそれぞれの機能が Pyramid コードに翻訳される間、 fallback アプリ ケーションはまだ移植されていない機能性を扱い続けるでしょう。

私は Pylons 1.0プロジェクトを Pyramid に移植すべきですか?

Pyramid 1.0 は2011年1月31日にリリースされました。

Pylons から Pyramid への移行ガイドのドラフトリリースは https://bytebucket.org/sluggo/pyramid-docs/wiki/html/migration.html で 利用可能です。 Pylons ユーザのための Pyramid ガイドは http://docs.pylonsproject.jp/projects/pyramid_cookbook-ja/en/latest/pylons/index.html で利用可能です。

数人の Pylons ユーザから、小さなアプリケーションをあまり苦労せずに移植 したという報告を聞きました。より大きな Pylons アプリケーションについて は、移植を試みる前に移行ガイドドキュメントが非ドラフトステータスに達す るのを待った方が良いでしょう。

しかしながら、後で Pyramid への移植を楽にするために今できることが多少 あります:

  1. Pylons グローバルオブジェクトの使用は、アクションメソッドの中で直接 使う場合を除き、避けてください。 self._py_object.request が実装され るまでは、それらにアクセスする他の良く知られた方法はありません。

    Pylons グローバルオブジェクトとは、 pylons からインポートされる ‘request’, ‘session’, ‘cache’, ‘response’, ‘tmpl_context’, ‘config’, ‘url’ オブジェクトのことを指します。

    これは、さらに Pylons アプリの外側 (コマンドラインスクリプト) で ドメインモデルを使用する能力に影響します。ドメインモデルは動作のため に Pylons グローバルに依存すべきではありません。また、ドメインモデル のクラスメソッドに Pylons グローバルを渡すべきではありません。モデル が必要とする単なるデータを含む変数を渡してください。

  1. すべてのルーティングが明示的かつ名前を持っていることを確認してください。 Pyramid のルーティングはすべて (ユニークに) 名前を持たなければならず、 最小化は利用できません。

あなたの Pylons アプリが既にこのようにセットアップされていれば、ドメイン モデルはおそらく変更の必要は全くないでしょう。テンプレートは多少の変更 を必要とするかもしれません。また、コントローラーはいくつかの変更が必要 でしょう。

Pyramid と repoze.bfg の違いは何ですか?

Pyramid は以下の点を除き repoze.bfg そのもの です:

  • 新しい名前とインポート位置の新しいセット
  • Pylons 1.0 ユーザの期待に合わせた少数の追加機能

既存の repoze.bfg アプリケーションを Pyramid へ移植するためには、変更は やはり必要ですが、ほとんどの移植プロセスを自動化することは可能です。詳細は http://docs.pylonsproject.jp/projects/pyramid-doc-ja/en/latest/tutorials/bfg/index.html を参照してください。

参考として、 KARL という非常に大きな (> 70K 行のコード) repoze.bfg アプリケーションは、提供された自動化を使用して30分で移植されました。

repoze.bfg 1.3 (2010年11月1日に作られました) は、その最後のメジャーリリース になるでしょう。重大なバグフィックスのためにマイナーアップデートが作ら れることはあります (そのため 1.3.1, 1.3.2 などがあるかもしれません)。 しかし、新機能開発は Pyramid の中で行われます。

Pyramid は他の多くの Python ウェブフレームワークとはどこが異なっているのですか?

http://docs.pylonsproject.jp/projects/pyramid-doc-ja/en/latest/narr/introduction.html#what-makes-pyramid-unique を見てください。

Python 3 への移行は計画されていますか? それはいつですか?

Pyramid 1.3a1+ は Python 3.2 以上で動きます。それ以前のバージョンは Python 2 でのみ動きます。