2017-05-24 4 views
0

辞書の内容をウェブページに表示できないというこの問題があります。Flaskを使用して辞書の内容をWebページに表示する方法

web_indiv[url_sequence] = {'url' : converted_url , 'name' : x.name, 'count' : web_count_current } 

    return render_template('video.html', web_data = web_indiv) 

web_indivは、ループを使用して移入し、次いでweb_dataとしてvideo.htmlに渡されます。

サンプル辞書

{1: {'url': 'http://www.drpeppersnapplegroup.com/', 'name': 'Dr. Pepper-Snapple Group', 'count': 57}, 2: {'url': 'http://www.rccolainternational.com/', 'name': 'Royal Crown Cola', 'count': 41}} 

注:これは、その中に別の辞書が含まれている辞書です。

これは私のhtmlファイルに既にあるものです。

{% for key1,line in web_data.items() %} 
    {% for key2,line_item in line.items() %} 
    <tr> 
     <td class="col-md-2">{{ line_item['url'] }}</td> 
     <td class="col-md-2">{{ line_item['name'] }}</td> 
     <td class="col-md-2">{{ line_item['count'] }}</td> 
    </tr> 
    {% endfor %} 
{% endfor %} 

データはWebページに表示されません。

私の質問を読んでいただきありがとうございます。それだけで辞書がある場合

答えて

0

、あなたはこれを試みることができる:web_data[url_sequence]が辞書であることを

<html> 
{{web_data[url_sequence]}} 
<table> 
    <tr> 
     {%for value in web_data[url_sequence].values()%} 
      <td class="col-md-2">{{ value }}</td> 
     {% endfor %} 
    </tr> 
</table> 
</html> 

注意を。

この1つは注文(その後、URL、名前とカウント)を持つことになります。

<tr> 
    <td class="col-md-2">{{ web_data[url_sequence].url }}</td> 
    <td class="col-md-2">{{ web_data[url_sequence].name }}</td> 
    <td class="col-md-2">{{ web_data[url_sequence].count }}</td> 
</tr> 

実例:

あなたは辞書web_indivがあると、あなたはvideo.html

をテンプレートにレンダリングしたいです
@app.route('/', methods=['GET']) 
def root(): 
    web_indiv = {} 
    url_sequence = 'test' 
    web_indiv[url_sequence] = {'url':'testabc','name':'hello','count': 4} 
    return render_template('video.html', web_data = web_indiv, url_sequence = url_sequence) 

次に、あなたは、このようにテンプレートで辞書を使用することができます。

<tr> 
    <td class="col-md-2">{{ web_data[url_sequence].url }}</td> 
    <td class="col-md-2">{{ web_data[url_sequence].name }}</td> 
    <td class="col-md-2">{{ web_data[url_sequence].count }}</td> 
</tr> 

HTMLは、あなたが表示されます:

testabc hello 4 
+0

ありがとうございました。しかし、私はurl_sequenceの値をhtmlにも渡す必要がありますか? – jeremybcenteno

+0

@JeremyCenteno実際の例(回答が更新)を参照すると、テンプレートのdictの使い方を理解できます。 –

+0

@JeremyCenteno上記の例のように、変数url_sequenceをテンプレートに渡す必要があります。これにより、辞書が機能するようになります。 –

0
{% for key2,line_item in web_data[url_sequence].items %} 
    <tr> 
     <td class="col-md-2">{{ line_item }}</td> 
    </tr> 
{% endfor %} 
+0

こんにちは、コメントありがとうございました。しかし、Jinja2はUndefinedErrorをスローします。 Btw、私はループが生成する辞書のサンプルを含めることを忘れていました。この執筆時点では、サンプル辞書が追加されています。 – jeremybcenteno

+0

@JeremyCenteno答えを更新しました – doru

+0

このコードは質問に答えるかもしれませんが、どのようにして問題が解決されたのか、および/または理由が解明されれば、回答の長期的価値が向上します。 - [レビューから](https://stackoverflow.com/review/low-quality-posts/16224168) –

関連する問題