url_for
的基本使用:
url_for
: url_for的一个参数是一个视图函数的名字的字符串格式,后面的参数的参数以关键字的形式传递给url
。 如果传递的参数在那个视图中url中定义了,那么这个参数就会以路径参数的形式给url
。 如果传递的参数没有在url
中定义,那么这些参数将会以查询字符串的形式放到url
中。
from flask import Flask, url_for app = Flask(__name__) @app.route('/') def index(): my_list_path = url_for('my_list', page=1, count=111) print(my_list_path) # 结果为: /list/1/?count=111 return my_list_path @app.route('/list/<int:page>/') def my_list(page): return '第 {} 页'.format(page)
为什么需要 url_for
:
- 将来如果修改了
URL
, 但没有修改该URL对应的函数名,就不用到处支替换URL了. url_for
会自动的处理那些特殊的字符,不需要手动处理
@app.route('') def index(): a = url_for('login', next='/') print(a) # /login/?next=%2F # 会自动编码,不需要手动处理了 return a @app.route('/login/') def login(): return 'login'
使用url_for
在模板中加载静态文件
加载静态文件使用的是url_for
函数。第一个参数需要为'static'
, 第二个参数需要为一个关键字参数filename='静态文件路径'
。 如下所示:
<link rel="stylesheet" href="{{ url_for('static', filename='css/index.css') }}">
路径查找,要心当前项目的sttic
目录作为根目录