从烧瓶中的基本模板继承时,将脚本src设置为动态值

时间:2018-12-28 04:02:44

标签: flask

所以我有一些flask代码,并且想知道是否有任何方法可以使html内部的url动态化。烧瓶代码如下:

from flask import Flask, render_template

app = Flask(__name__)
application = app

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/register')
def register():
    return render_template('register.html')

if __name__ == '__main__':
    app.run(debug=True)

在base.html中,我有一些代码,最后,我有

<script src="{{ url_for('static', filename='js/base.js') }}"></script>

呈现的代码导致:

<script src="/static/js/base.js"></script>

我要从base.html继承另一个HTML文件。 index.html如下:

<h1>some code (the code doesn't really matter)</h1>

我希望能够在脚本标记的末尾添加<script src="/static/js/base.js"></script>,而不添加任何内容。有什么办法吗?

换句话说,如果模板是index.html,我希望脚本标记源是index.js;如果模板为challenge.html,则我希望脚本标记源为challenge.js。

1 个答案:

答案 0 :(得分:2)

您可以在父级中使用Jinja assignments(模板变量),并将其设置在子级中。

base.html

{% set main_js = main_js|default('') %}
{% if main_js %}
    <script src="/static/js/{{ main_js }}.js"></script>
{% endif %}

index.html

{% extends 'base.html'%}
{% set main_js = 'index' %}

您可以对页面标题,元标记等使用相同的技术。