IT序号网

url_for

leader 2021年05月25日 编程语言 360 0

url_for的基本使用:

url_forurl_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:

  1. 将来如果修改了URL, 但没有修改该URL对应的函数名,就不用到处支替换URL了.
  2. 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目录作为根目录

强烈建议以后在使用url的时候,使用url_for来反转 url


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!