考虑以下代码
import flask
class API:
def hello(self):
return flask.Response('hello', 200)
api = API()
app = flask.Flask(__name__)
app.add_url_rule('/', 'hello', api.hello)
app.run()
它返回"你好"在GET
致电/
后。
documentation for add_url_rule
表示
[
add_url_rule
]与route()
装饰器完全相同。
但它至少需要三个参数。第一个和第三个是可以理解的并且模仿@route()
。第二个是什么(我的情况是hello
)?
文档进一步说明这是
端点 - 已注册网址规则的端点。 Flask本身将视图函数的名称视为端点
这是什么意思?为什么网址(/
)和调用方法(api.hello
)不足? "端点&#34 ;?的作用是什么?它是如何使用的?
答案 0 :(得分:7)
该路线的名称;例如,您在url_for()
function中使用的那个。端点名称是视图的注册键,是一个符号名称,您可以通过该名称引用应用程序其他部分的路径。
@route()
采用相同的参数;默认值是修饰函数的名称。这在add_url_rule()
文档以及@route()
的文档中都有记录:
- 端点 - 已注册网址规则的端点。 Flask本身将视图函数的名称视为端点。
(粗体斜体强调我的)。
请注意,文档中的示例试图显示相同的内容:
基本上这个例子:
@app.route('/') def index(): pass
等同于以下内容:
def index(): pass app.add_url_rule('/', 'index', index)
请注意,第二个参数'index'
与函数名匹配。