什么是"端点"在烧瓶的.add_url_rule()?

时间:2017-08-10 07:56:42

标签: python flask

考虑以下代码

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 ;?的作用是什么?它是如何使用的?

1 个答案:

答案 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'与函数名匹配。