如何将url作为参数传递给flask模板?

时间:2015-08-24 09:20:12

标签: python html5 flask jinja2

我想在_header.html中传递url作为参数,以便将来有任何更改,然后我们只能通过一个函数进行更改,这个_header.html包含在base.html中,我是新的在烧瓶中,因为我只是使用{% urlparameter%我不知道这是对的。请告诉我怎么做,我们是否需要为此编写任何python函数?

我在这里使用http://192.168.206.133:5001/metering在未来这将会改变,所以任何处理此类案件的好方法

_header.html

<h1 class="brand"><a href="http://192.168.206.133:5001/metering"">{% url parameter %}</a></h1>

base.html文件

<body ng-app="flaskhorizonapp">
    {% block content %}
        <div id="container">
            <div class='topbar'>
                {% include "_header.html" %}
            </div>
        </div>
    {% endblock %}
</body>

1 个答案:

答案 0 :(得分:0)

在模板中,变量引用封装在{{}}中,而不是{%%}。因此,您应该将_header.html的内容更改为:

<h1 class="brand"><a href="{{ urlparameter }}">{{ urlparameter }}</a></h1>

现在,模板可以呈现上下文变量urlparameter的值。这是一个简单的Flask应用程序:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template('base.html', urlparameter='http://www.stackoverflow.com')

app.debug = True
app.run()

因此您需要将变量urlparameter传递给render_template()。请注意,我启用了调试,因为这可以帮助您在开发过程中发现这样的错误。

render_template()假设您的模板位于包含烧录脚本的目录的子目录中。子目录必须命名为templates

查看here了解更多详情。