Flask(4) - url_for

分类: Python 作者: 浏览:31 时间:2019年5月28日 05:16 评论:0

前面的学习中,我们都是通过url进入的与之相对应的视图函数,现在有一个问题,如果我们知道了视图函数,要怎么找到url呢?这时候我们就需要url_for反转函数了。它通过把视图函数反转成路由地址

url_for的基本使用

from flask import url_for  
@app.route("/")  
def index():  
    return "Hello World!"  

@app.route("/detail/")  
def detail():  
    return url_for("index")  

当我们访问路由detail路由时,页面返回视图函数index的路由地址/,使用url_for有一个很大的好处,就是以后如果我们修改了路由,只要视图函数名字没有变,url_for反转的路由地址也会变更,而不用我们去修改代码

url_for的参数传递

我们已经来接的url_for的基本使用,但现在又有一个新的问题,那就是视图函数中的参数怎么传递呢?
url_for的源码就有写到参数

def url_for(endpoint, **values):  
    ...  

第一个参数endpoint也就代表着视图函数的名字
第二个参数**values,传入的参数必须以键值对的形式

@app.route("/detail/<int:article_id>")  
def detail(article_id):  
    # url_for中传递的参数需要和视图函数中的参数名保持一致  
    return url_for("detail", article_id=article_id)  

当我们访问/detail/1时,页面上也会返回相对应的路由/detail/1/

赞(0)

评论(0)

  • 暂无评论