2017-08-21 22 views
-1

私はチャットボットを構築しています。 login.html、messages.html、transaction.htmlなどの子テンプレートはほとんどありません。これらのテンプレートをbase.htmlに動的に追加したいと思います。私はこれらすべてのテンプレートでbase.htmlを拡張しています。私の問題は、一度に1つのテンプレートだけがレンダリングされることです。これらのテンプレートを次々に追加するソリューションはありますか?私は{%include%}を使用しましたが、静的なアプローチです。私はダイナミックが必要です。Flask、jinja2 - テンプレートを次々に動的に追加します。

printer.pyは次のようになります - 私はそれを解決し

{% extends "base.html" %} 
{% block template %} 
<div> Message template called </div> 
{% endblock %} 

答えて

0

- message.htmlがどのように見える

//some code here 
<li> 
    {% block template %}{% endblock %} 
</li> 
//some code here 

-

@app.route('/respond', methods=['GET','POST']) 
def respond_def(): 
    message = request.form['message_input'] 
    if message == "l": 
     return render_template('printer/login.html') 
    elif message == "t": 
     return render_template('printer/transactionID.html') 

base.htmlのように見えます。 私はprinter.pyでテンプレートのリストを作成し、ユーザがそれを要求するたびにbase.htmlのテンプレートを追加しました。

printer.py

dictionary = [] 
// append name of template in this whenever needed. 
return render_template('printer/base.html', dictionary=dictionary) 

base.html

{% for d in dicts %} 
{% set template = 'printer/' + d + '.html' %} 
// can add conditions for different templates 
{% include template %} 
{% endfor %} 
関連する問題