flask中注册路由的两种方式
2018-07-13 本文已影响59人
转身丶即天涯
最常见的一种注册方式就是使用装饰器注册路由,比如@app.route('/hello')。这样在浏览器中访问127.0.0.1/hello就能看到页面了,下面我们介绍另外一种方式。
通过app实例来注册路由。
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello():
print("has called hello function.")
return 'hello, nzh.'
def hello_two():
print("换一种注册路由的方式")
return 'hello, nzh'
app.add_url_rule('/hello_two', view_func=hello_two)
app.run(debug=True)
通过Flask的实例app的add_url_rule()方法也能达到同样的效果。
我们可以跳转到add_url_rule()方法中看一下它是如何定义的。
image.png
在函数的注释文档中我们可以清晰的看到,“工作方式类似于app.route装饰器”还有“如果view_func参数被提供的话,endpoint也会被注册”。
所以,我们使用这个方式的时候传两个参数就够了,路由和对应的方法。
什么时候会用到add_url_rule()?
当你想使用类视图(也有叫“即插视图”的)的时候,必须使用这种方式来注册路由。
至于endpoint是什么,暂时我只知道是flask管理url和对应函数的映射表。