flask原始碼閱讀筆記 4 路由實現分析

2021-08-21 13:48:11 字數 1363 閱讀 5417

from flask import flask

defhello

():return

"hello world!"

分析裝飾器原始碼:

def

route

(self, rule, **options):

defdecorator

(f):

endpoint = options.pop('endpoint', none)

self.add_url_rule(rule, endpoint, f, **options)

return f

return decorator

通過這個裝飾器將view function註冊到url。(url-route-registrations)。

**注釋提及:

# basically this example::

defindex

():pass

# is equivalent to the following::

defindex

():pass

# 官方demo:

defindex

():pass

defshow_user

(username):

pass

defshow_post

(post_id):

pass

defshow_users

(page):

pass

在路由系統中定義規則可以的方法可以概括為三種:

引數名解釋

rule

url 規則的字串

endpoint

註冊的 url 規則的末端。如果沒有顯式地規定,flask 本身假設末端的名稱是檢視函式的名稱,。

view_func

當請求呈遞到給定的末端時呼叫的函式。如果沒有提供,可以在用在 view_functions 字典中以末端作為鍵名儲存,來在之後設定函式。

defaults

規則預設值的字典。上面的示例介紹了預設值如何工作。

subdomain

當使用子網域名稱匹配的時候,為子網域名稱設定規則。如果沒有給定,假定為預設的子網域名稱。

**options

這些選項會被推送給底層的 rule 物件。乙個 werkzeug 的變化是 method 選項的處理。methods是這個規則被限定的方法列表( get , post 等等)。預設情況下,規則只監聽 get (也隱式地監聽 head )。從 flask 0.6 開始,options 也被隱式地加入,並且做標準的請求處理。 它們需要作為關鍵字引數來給定。

待補充

REST on Rails指南4 路由

通過上一講我們了解到,restful設計的關鍵就是定義系統中的資源,這一講我們將學習在rails中,如何將請求路由到我們的資源,以及我們應該如何來處理它。不過,有一點需要先說明 rest並不是rails的一部分,在rails出現之前,rest的概念已經存在很多年了,並且rest的應用也並不侷限於we...

flask系列 1 5 路由基本定義

指定訪問路徑為 demo1 def demo1 return demo1 有時我們需要將同一類 url 對映到同乙個檢視函式處理,比如 使用同乙個檢視函式來顯示不同使用者的個人資訊。路由傳遞引數 def user info user id return hello s user id 路由傳遞引數 ...

Flask學習筆記2 路由定義的基本方式

使用methods引數指定可接受的請求方式,可以是多種 defhello return hello,world 有時我們需要將同一類url對映到同乙個檢視函式處理,比如 使用同乙個檢視函式來顯示不同使用者的訂單資訊。路由傳遞的引數預設當作string處理 defhello itheima order...