it-swarm.cn

使用url_for()在Flask中创建动态URL

我的Flask路线中有一半需要变量say,/<variable>/add/<variable>/remove。如何创建指向这些位置的链接?

url_for()为函数路由到一个参数,但我不能添加参数?

135
Gio Borje

它接受变量的关键字参数:

url_for('add', variable=foo)
205
FogleBird

Flask中的url_for用于创建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>

像这样你可以简单地传递参数!

73
Hiro

请参阅 Flask API文档flask.url_for()

下面是将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') }}">
30
thirumalaa srinivas