Djangoのテンプレート設定と出力の基礎知識

  、get_template機能

  django.template.loaderにインポートget_templateから

  django.httpインポートからのHttpResponse

  インポート日時

  デフtemp_test(リクエスト):

  今= datetime.datetime.now()

  トン= get_template( 'temp_test.html')

  HTML = t.render({ 'CURRENT_DATE':今})

  HttpResponseを返す(HTML)

  テンプレートの出力:

  それは今は{{}} CURRENT_DATE

  ファイル・システム・モジュール内の位置を識別するためのパラメータとして、テンプレート名にget_template()関数、ファイルを開き、コンパイル済みテンプレートオブジェクトを返します

  二、render_to_response()は、テンプレートをレンダリング

  django.shortcuts輸入render_to_responseから

  インポート日時

  デフcurrent_datetime(リクエスト):

  今= datetime.datetime.now()

  戻りrender_to_response( 'current_datetime.html' { 'CURRENT_DATE':今})

  render_to_response()最初の引数は、使用するテンプレートの名前でなければなりません。2番目のパラメータセットを与えた場合、それが使用されるテンプレートの作成コンテキスト辞書のための時間でなければなりません。なし第二引数の場合、空の辞書とのrender_to_response()。

  三、地元の人々()のヒント

  django.shortcuts輸入render_to_responseから

  インポート日時

  デフtemp_test(リクエスト):

  今= datetime.datetime.now()

  リターンrender_to_response( 'temp_test.html'、地元の人々())

  すべての変数を含む地元の()についての値は、時点によって定義された機能を実行します

  このとき、対応するhtml形式の出力は次のようになります。

  それは今は{{}}今

  四、get_template使用のサブディレクトリ()内

  django.shortcuts輸入render_to_responseから

  インポート日時鄭州婦人科病院http://www.sptdfk.com/

  デフtemp_test(リクエスト):

  今= datetime.datetime.now()

  リターンrender_to_response( 'メンバー/ temp_test.html'、地元の人々())

  ただ、get_template()を呼び出すときに前に、テンプレート名にサブディレクトリ名とスラッシュを追加

  render_to_response()は単に)(get_templateするカプセル化しているので、あなたはrender_to_response最初のパラメータは、()と同じプロセスを実行することができます

  第五に、テンプレートは、テンプレートと継承が含まれています

  図1に示すように、テンプレートに含まれる:(含む);現在のテンプレートディレクトリのパスを受ける公共ヘッド、公共の尾部、

  {% 'は、共通/ nav.html' %を含みます}

  それは今は{{}}今

  2、テンプレートの継承:ブロックの使用状況

  コンセプト:テンプレートの継承は、まず基本的なフレームワークのテンプレートを構築することである、それはブロックの共通部分の部位を含み、オーバーロードされたその子テンプレートで定義されています

  マイ役立つタイムスタンプサイト

  {%ブロックコンテンツ%} {%の末端ブロック%}

  {%ブロックフッタ%}

  私のサイトを訪問してくれてありがとう。

  {%の末端ブロック%}

  すべての{%ブロック%}タグは、テンプレートエンジンに伝え、テンプレートは、子の部分を無効にすることができます。タグ行う各{%ブロック%}はキルトテンプレートをカバーすることが可能となるテンプレートエンジン、テンプレート内のコンテンツのこの部分を教えています。

  サブテンプレートに変更することができます:

  {% "はbase.html" %を拡張します}

  {%ブロックタイトル%}現在時刻{%の末端ブロック%}

  {%ブロック含量%}

  今{{CURRENT_DATE}}です。

  {%の末端ブロック%}

  コアファンクションポイント:

  1テンプレートで{%は%を拡張}場合、テンプレートは、最初のテンプレートが標識されていることを確認しなければなりません。それ以外の場合は、テンプレートの継承は動作しません。

  図2に示すように、一般的に、基礎テンプレート{%ブロック%}は良好タグ。サブテンプレートは、テンプレートのすべての親のブロックを定義する必要がないので、妥当なデフォルト値のコードのブロックを充填してもよいし、次いで、コードテンプレートのみ所望のサブブロック(再)が定義され、覚え

  3.あなたは{{block.super}}このタグを使用して、親テンプレートからブロックの内容にアクセスする必要がある場合、それは親テンプレートのマジック変数の内容を表示します。あなたが完全に変数をオーバーライドするのではなく、親ブロックにコンテンツを追加したい場合、それは非常に便利です。

  図4は、同じテンプレートに同じ名前の{%ブロック%}の定義を可能にしました。

  図5は、テンプレート名を使用して)(同じget_templateに渡さローディング方式の{%は%を拡張します}。つまり、テンプレート名はTEMPLATE_DIRSの後にセットに追加されます。

  図6は、ほとんどの場合、パラメータ{%は%を拡張}文字列でなければならないが、実行時まで、親テンプレートの名前が、これは可変パラメータとすることができる場合にのみ決定することができます


おすすめ

転載: blog.51cto.com/14503791/2447935