1) テンプレート エンジン: コードから HTML を抽象化するためのエンジン。理にかなっています。
これらはいくつか用意されています。Mako は、多くの新しい概念を学ぶ必要がないように、テンプレートで多くの一般的な Python イディオムを利用しようとします。Jinja2 は Django に似ていますが、より多くの機能を備えています。Genshi は、XML ベースのテンプレートが好きな場合に使用します。
全体に不慣れな人として、残念ながらどれが最も簡単に開始できるかを言うのは難しい. おそらくJinja2。
2) SQLAlchemy 等。ORM。罰金。
うん。
3) レンダラー。わかりません。
レンダラーは Pyramid ビュー構成オプションであり、ビューが dict を返す場合、それを指定された「レンダラー」に渡す必要があることを Pyramid に伝えます。レンダラーは拡張名で動作するように設定されており、Pyramid にはいくつかの組み込みが付属しています:
http://docs.pylonsproject.org/projects/pyramid/1.0/narr/renderers.html#built-in-renderers
つまり、レンダラー オプションは、渡された名前を参照するだけで、拡張子 (.mak、.pt、'json'、'string'、.etc) に一致するテンプレート エンジンを見つけ、それを使用して dict の結果をレンダリングします。 .
多くのフレームワークでは、レンダラーを構成として指定しませんが、代わりにビュー内に次のようなコードをいくつか入れます。
def somefunc(request):
return render_to_response('/some/template.mak', {})
Pyramid では、以下で同じことができます:
@view_config(renderer='/some/template.mak')
def somefunc(request):
return {}
後者が便利な機能である理由はいくつかあります。
完全に構成されている場合は、ビューのコード ロジックを変更せずにレンダラーをオーバーライドできます。
他の条件に基づいてレンダラーを変更する複数の構成を追加できます。
HTTP リクエストが XHR (テンプレート エンジンによる HTML の吐き出しを必要とする一般的な HTTP リクエストではなく、JSON 形式の結果を必要とする AJAX リクエスト) であるかどうかに基づいてレンダラーを変更するこの例を検討してください。
@view_config(renderer='json', xhr=True)
@view_config(renderer='/some/template.mak')
def somefunc(request):
# lookup some_dict_data in a db, etc.
return some_dict_data
4) JS ライブラリ: JQuery など。きれいな効果を追加することを除いて、これらが何を使用するのかわかりません。これはテンプレート エンジンとどのように相互作用しますか? これはフレームワーク全体とどのように相互作用しますか? ピラミッドで jquery のコードを記述できますか、それとも JS を個別に記述するか、JS ファイルをテンプレートにプラグインするか、または...?
JS ライブラリを使用すると、Javascript を簡単に記述できます。それらはブラウザーで DOM と対話し、JSON 形式の結果を必要とする Web アプリケーションに HTTP 要求を送信する以外に Pyramid と対話することはありません。
まず、HTML、DOM ツリー、および HTML、CSS、および Web アプリケーションだけで動作するサイトに慣れるまで、Javascript を完全に無視することをお勧めします。
5) フォーム テンプレート ライブラリ (formish、formalchemy など) これらは全体像とどのように関連していますか? 彼らはどこにプラグインしますか?
それらを完全に無視して、基本的な HTML フォーム要素を作成することを強くお勧めします。あなたは Web スタック全体に不慣れであり、最初に基本に慣れることなく、Web 開発の最も高度な側面に直接ジャンプする必要はありません。
ただし、基本的なフォームを作成した後に必要になるのは、送信されたフォームに有効なパラメーターが含まれていることを簡単に確認できるフォーム検証ライブラリが必要になることです。PHP の昔は、人々はフォームを通過する何百行もの if/else ステートメントを書いていました (今でもそうしているものもあります! ack!)。
最近では、フォームの有効なパラメーターが何であるかを簡単に宣言できるフォーム検証ライブラリを使用しています。検証のためだけに使用するのはかなり簡単なので、最初は FormEncode をお勧めします。Pyramid の場合、FormEncode を使用する最も簡単な方法は、おそらくpyramid_simpleform です:
http://packages.python.org/pyramid_simpleform/
今のところ、フォーム レンダリング部分は無視して、HTML フォーム要素を自分でテンプレートに記述し、簡単な FormEncode 統合のためだけに pyramid_simpleform を使用します。
要するに、ビュー関数とテンプレートを使用して、リンク付きの HTML ページを表示することから始めます (そして、初心者にとってトラバーサルよりも把握しやすい URL ディスパッチを使用します)。次に、フォーム、その HTML および検証を追加し、CSS を追加してスタイリングを開始します。
次に、jQuery を使用した基本的な Javascript から始めて、ページ上で物事を動かし、AJAX を介して Web アプリケーションとやり取りして、より多くのデータを取得します。一度に多くのことに取り組みすぎないようにしましょう。