使用url_for()在Flask中创builddynamicURL
我的Flask路线的一半需要一个variables说, /<variable>/add
或/<variable>/remove
。 如何创build指向这些位置的链接?
url_for()
需要一个参数的函数路由到,但我不能添加参数?
它接受variables的关键字参数:
url_for('add', variable=foo)
请参考flask.url_for()
的Flask API文档
下面是用于将js或css链接到您的模板的其他示例片段。
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script> <link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Flask中的url_for
用于创build一个URL,以防止必须在整个应用程序(包括模板)中更改URL的开销。 如果没有url_for
,如果您的应用的根url发生变化,那么您必须在链接所在的每个页面中更改它。
语法: url_for('name of the function of the route','parameters (if required)')
它可以用作:
@app.route('/index') @app.route('/') def index(): return 'you are in the index page'
现在如果你有一个链接索引页面:你可以使用这个:
<a href={{ url_for('index') }}>Index</a>
你可以做很多东西,例如:
@app.route('/questions/<int:question_id>'): #int has been used as a filter that only integer will be passed in the url otherwise it will give a 404 error def find_question(question_id): return ('you asked for question{0}'.format(question_id))
对于以上我们可以使用:
<a href = {{ url_for(find_question,question_id=1) }}>Question 1</a>
像这样,你可以简单地传递参数!