簡體   English   中英

flask的.add_url_rule()中的“端點”是什么?

[英]What is the “endpoint” in flask's .add_url_rule()?

請考慮以下代碼

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()

它返回的“hello”在一個GET調用/

add_url_rule文檔說明了這一點

[ add_url_rule ]的工作原理與route()裝飾器完全相同。

然而,它至少需要三個參數。 第一個和第三個是可以理解的並且模仿@route() 第二個是什么(在我的情況下hello )?

文檔進一步指出這是

endpoint - 已注冊URL規則的端點。 Flask本身將視圖函數的名稱視為端點

這是什么意思? 為什么URL( / )和調用方法( api.hello )不夠? “終點”的作用是什么? 它是如何使用的?

這是路線的名稱 ; 例如,你在url_for()函數中使用的那個。 端點名稱是視圖的注冊鍵,是一個符號名稱,您可以通過該名稱引用應用程序其他部分的路徑。

@route()采用相同的參數; 默認值是修飾函數的名稱。 這在add_url_rule()文檔以及@route()的文檔中@route()記錄:

  • endpoint - 已注冊URL規則的端點。 Flask本身將視圖函數的名稱視為端點。

(粗體斜體強調我的)。

請注意,文檔中的示例嘗試顯示相同的內容:

基本上這個例子:

 @app.route('/') def index(): pass 

相當於以下內容:

 def index(): pass app.add_url_rule('/', 'index', index) 

請注意,第二個參數'index'與函數名稱匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM