2017-10-19 4 views
0

私はjinga2テンプレートとJsonを使用してフラスコWebアプリケーションをセットアップしました。私は自分のhtmlテンプレートにjsonファイルに格納されているデータを表示しようとしています。私は理想的にはそれを表示し、HTMLのリストのようにしたいと思います。ページはjsonをレシピ形式で表示する必要があります(例:ステップを実行しますが、動作させることはできません)。jsonja2テンプレートを使用してjsonを表示

私はこの問題の再現を助けるために私のpythonファイル、json、およびhtmlテンプレートを含めました。

これは私のpythonファイルです:JSON

{ 
"name": "pumpkin pie", 
"ingredients": [" large eggs plus 1 yolk", "1 tsp ground cinnamon"], 
"methods": { 
    "1": "Pre-heat the oven to 200C/400F/Gas 6", 
    "2": "If using a shop bought sweet crust pastry case, use one that is 23cm/9in diameter and 4cm/1.5in deep. If using your own pastry, roll it out and use it to line a 23cm/9in pie plate (not loose bottomed). Bake the pastry case blind for 20 minutes." 
} } 
+0

:あなたはのような出力が得られます

? – thaavik

+0

このようなjsonメソッドを表示し、複数回表示する(u'1 ':オーブンを200C/400F /ガス6'、u'2 'にプレヒーティングする:u''eは、直径23cm/9in、深さ4cm/1.5inのものを使用してください。あなた自身のペストリーを使用している場合は、それをロールアウトし、それを23cm/9inのパイプレートに敷き詰めます(底が緩くはありません)。ペストリーケースを20分間盲目に焼く。 '} –

答えて

0

:これは私のJSONファイルである

<div class="container"> 
<div class="ingredients"> 
    <p>{{ pumpkin.ingredients }}</p> 
</div> 
<div class="method"> 
    <ul> 
    {% for result in pumpkin %} 
     {% for methods in result %} 
      <li>{{pumpkin.methods }}</li> 
     {% endfor %} 
    {% endfor %} 
    </ul> 
</div> 

:これは私のhtml tempateファイルです

@app.route('/recipes/pumpkin_pie/') 
@app.route('/recipes/halloween/pumpkin_pie/') 
def pumpkin_pie(): 
    recipes = [] 
    with open('recipes.json', 'r') as f: 
    recipes = json.load(f) 
    f.close() 
    print recipes 

    p = {} 
    for item in recipes: 
    if item['name'] == "pumpkin pie": 
     print item 
     p = item 
     print p 

    return render_template('pumpkin_pie.html', pumpkin=p) 

あなたがしないファイルオブジェクトの配列を持つ。むしろ1つのオブジェクトしか持っていません。だから、Pythonでオブジェクトの配列と仮定してiterating iterating希望の出力を与えることはありません。

更新のpythonファイルとして:

@app.route('/recipes/pumpkin_pie/') 
@app.route('/recipes/halloween/pumpkin_pie/') 
def pumpkin_pie(): 
    recipes = [] 
    with open('recipes.json', 'r') as f: 
     recipes = json.load(f) 
     f.close() 
    return render_template('pumpkin_pie.html', pumpkin=recipes) 

として、テンプレートファイル:正確に機能していない何

enter image description here

関連する問題