代码之家  ›  专栏  ›  技术社区  ›  Aniket G

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

  •  0
  • Aniket G  · 技术社区  · 6 年前

    因此,我有一些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)
    

    <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 回复  |  直到 6 年前
        1
  •  2
  •   minboost    6 年前

    你可以用Jinja assignments (模板变量)并在子级中设置它们。

    {% 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' %}