8Flask实战第8天(add_url_rule和app.route原理)

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述8Flask实战第8天:add_url_rule和app.route原理相关的知识,希望能为你提供帮助。
之前我们使用@app.route这个装饰器来把视图函数和url绑定

@app.route(\'/\') def hell_world(): return \'hello world\'

而且我们可以通过url_for(\'hello_world\')反转得到url \'/\'
实际上我们可以给这个装饰器再加上endpoint参数,给这个url命名
@app.route(\'/\', endpoint=\'index\') def hello_word(): return \'hello world\'

一旦我们使用了endpoint参数,在使用url_for()反转的时候就不能使用视图函数名了,而是要用我们定义的url名
url_for(\'index\')

另外一种方式绑定视图函数和url,那就是add_url_rule
先在app = Flask(__name__)下面输入app.add_url_rule, 然后按住ctrl点击它查看源码
8Flask实战第8天(add_url_rule和app.route原理)

文章图片

rule:  设置url
endpoint:  给url设置的名字
view_func:  视图函数
因此,我们可以这样用
def my_list(): return \'my list\'app.add_url_rule(rule=\'/list/\', endpoint=\'list\', view_func=my_list)

如果要使用url_for反转的话也是: url_for(\'list\')
【8Flask实战第8天(add_url_rule和app.route原理)】 
实际上,我们看@app.route这个装饰器的源码,也是用add_url_rule
8Flask实战第8天(add_url_rule和app.route原理)

文章图片


    推荐阅读