2011-12-24 4 views
10

シナリオは次のようになります。親htmlファイルから神社のインポートに変数を渡すか、含ま

「あなたが渡したいなどの名前、住所、などの分野の数を含む変数と呼ばれる人を持っています「HTMLの部分片に - このソリューションは例

snippet.html

<div id="item"> 
    <ul> 
    <li> 
     <span>{{name}}</span> 
     <span>{{address}}</span> 
    <li> 
    </ul> 
</div> 

mypage.html

ための顧客のための検索の結果かもしれません

これを達成する最良の方法は何ですか?ドキュメントでは、どこでもコンテキストを渡すことについて話していますが、それはテンプレートをレンダリングするときにはかなり大きなオブジェクトと思われます。確かに特定のオブジェクトを各テンプレートに渡す方が簡単ですか?

答えて

12

あなたが別のものにテンプレートが含まれ、それは、そのコンテキストへのアクセスを獲得するので、あなたがあなたのperson変数のmypage.htmlにコンテキストを渡した場合、あなたは次のようにインポートしたテンプレートからアクセスできるようになります:

snippet.html:

<div id="item"> 
    <ul> 
     <li> 
      <span>{{ person.name }}</span> 
      <span>{{ person.address }}</span> 
     </li> 
    </ul> 
</div> 

mypage.html:

<div id="result"> 
    {% include 'snippet.html' %} 
</div> 

view.py:

def view(person_id): 
    person = Person.get(person_id) # or whatever source you get your data from 
    return render_template('mypage.html', person=person) 
+1

含まれたファイル内のマクロについて – aWebDeveloper

+4

本のイライラ部分はあなたが作ることができないということは何か:インポート時に、例えば がインポートマクロで利用可能なコンテキストを持ってするには、コンテキストでを使用する必要がありますあなたの小さなあなたの話をするために、 "呼び出し変数"の名前に無関心であるために十分な一般的なインクルードが含まれています。たとえば、オブジェクトのリストをページングする一般的な方法を構築しているのであれば、通常、それらを「オブジェクト」というコンテナに入れません。「動物」のようなより具体的なものです。 – Dan

+0

@ダン代わりにマクロを使用してみませんか? – Achshar

4

これは、MatToufoutuの答えを補完します。

環境グローバルは常にマクロで使用できますが、コンテキスト変数は使用できません。

{% from "your_macros.html" import your_macro with context %} 
関連する問題