flask url_for
知道了url就可以找到对应的视图函数,那么现在问题来了,如果我们知道了视图函数,要怎么找到url呢?这时候我们就需要url_for函数了。
url_for()作用:
(1)给指定的函数构造 URL。
(2)访问静态文件(CSS / JavaScript 等)。 只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。
如:print url_for('hello_world') 或return url_for('hello_world') ,可输入结果为/
# -*- coding: utf-8 -*-
from flask import Flask,url_for
from flask import render_template
app = Flask(__name__)
title1="rr"
@app.route('/')
def hello_world():
return url_for('hello_world')
#或者return url_for('static',filename='33/2.txt')
if __name__ == '__main__':
app.run(debug=True)
return url_for('static',filename='33/2.txt') 可输出static/33/2.txt
它接受函数名作为第一个参数,也接受 URL 规则中对应的变量作为参数。未知变量部分会添加到 URL 末尾作为查询参数。
print(url_for('login', next='/'))
输出:/login?next=/
在html中使用时采用下面格式:
在index.html这个文件中,添加
<p><a href="{{ url_for('login') }}">登录</a></p>
选择构建URL而不直接在代码中拼URL的原因:
(1)反向构建通常比硬编码的描述性更好。更重要的是,它允许你一次性修改 URL, 而不是到处边找边改。
(2)URL 构建会转义特殊字符和 Unicode 数据,免去你很多麻烦。
(3)如果你的应用不位于 URL 的根路径(比如,在 /myapplication 下,而不是 / ), url_for() 会妥善处理这个问题。