add_url_rule和app.route

宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述add_url_rule和app.route相关的知识,希望能为你提供帮助。
app.route
在Flask框架中,默认是使用@app.route这个装饰器来把视图函数和url绑定,如:

@app.route(‘/‘) def hello_world(): return ‘hello world‘

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

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

 
add_url_rule
除了使用@app.route装饰器,我们可以可以使用add_url_rule来绑定视图函数和url
在app=Flask(__name__)下面app.add_url_rule,然后按住ctrl点击它查看源码
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‘)
 
实际上我们看@app.route这个装饰器的源码,也是用add_url_rule
【add_url_rule和app.route】
add_url_rule和app.route

文章图片


    推荐阅读