所以我有一些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。
答案 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' %}
您可以对页面标题,元标记等使用相同的技术。