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和对应函数的映射表。

上一篇下一篇

猜你喜欢

热点阅读