Flask教学课 – 8、【Flask_URL】url_for使用详情

1,url_for的作用

url_for可以将url的路径进行反转

2,为什么需要url_for

如果将来需要修改“ url”,而没有修改该URL对应的函数名,就不用贴换url了。相当于直接修改url的内容,只要不修改视图函数的名称即可通过url_for自动查找到

“ url_for”会自动处理特殊的字符,不需要手动处理

此方法小项目可不适用,但是中大型项目推荐使用,因为综合来看:

3,url_for的使用方法

先上代码

# 导入url_for
from flask import Flask, url_for

app = Flask(__name__)


@app.route('/')
def hello_world():
    print(url_for('b7'))
    return 'Hello World!'


@app.route('/6b7')
def b7():
    return 'Hello 6b7~'

我们在hello_world()函数里面打印了url_for的内容,url_for中的值是你想要获取的视图函数名称的字符串,我们来看运行结果

除了我们写死的路径之外,还有我们上一篇讲到的路径传值的网址,通过下面的演示代码,来看看我们的使用方式,代码如下

@app.route('/')
def hello_world():
    print(url_for('id', id=5))
    return 'Hello World!'


@app.route('/p/<path:id>')
def id(id):
    return '请求的书是第' + id + '本'

因为视图函数id()是需要预期参数的,所以我们在使用url_for的时候也需要给它放置参数才行。运行结果如下

还有一种情况就是,我们的视图函数只需要一个传参,我们向它设定两个参数,代码和运行结果如下

@app.route('/')
def hello_world():
    print(url_for('id', id=5, num=10))
    return 'Hello World!'


@app.route('/p/<path:id>')
def id(id):
    return '请求的书是第' + id + '本'

此时我们的Flask会将会面多余的传参以查询字符串的方式拼接在后面

阅读剩余
THE END