W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
0.7 新版功能.
在路由系統(tǒng)中定義規(guī)則可以的方法可以概括為三種:
路由中的變量部分可以用尖括號(hào)指定( /user/<username>)。默認(rèn)情況下,URL 中的變量部分接受任何不帶斜線的字符串,而 <converter:name> 也可以指定不 同的轉(zhuǎn)換器。
變量部分以關(guān)鍵字參數(shù)傳遞給視圖函數(shù)。
下面的轉(zhuǎn)換器是可用的:
string | 接受任何不帶斜線的字符串(默認(rèn)的轉(zhuǎn)換器) |
int | 接受整數(shù) |
float | 同 int ,但是接受浮點(diǎn)數(shù) |
path | 和默認(rèn)的相似,但也接受斜線 |
這里是一些例子:
@app.route('/')
def index():
pass
@app.route('/<username>')
def show_user(username):
pass
@app.route('/post/<int:post_id>')
def show_post(post_id):
pass
需要注意的一個(gè)重要細(xì)節(jié)是 Flask 處理結(jié)尾斜線的方式。你可以應(yīng)用下面兩個(gè) 規(guī)則來保證 URL 的唯一:
這與 web 服務(wù)器處理靜態(tài)文件的方式一致。這使得安全地使用相對(duì)鏈接地址成為 可能。
你可以為同一個(gè)函數(shù)定義多個(gè)規(guī)則。無論如何,他們也要唯一。也可以給定默認(rèn)值。 這里給出一個(gè)接受可選頁(yè)面的 URL 定義:
@app.route('/users/', defaults={'page': 1})
@app.route('/users/page/<int:page>')
def show_users(page):
pass
這指定了 /users/ 為第一頁(yè)的 URL ,/users/page/N 為第 N 頁(yè)的 URL 。
以下是 route() 和 add_url_rule() 接受的參數(shù)。兩者唯一的區(qū)別是,帶有路由參數(shù)的視圖函數(shù)用裝飾器定義,而不是 view_func 參數(shù)。
rule | URL 規(guī)則的字符串 |
endpoint | 注冊(cè)的 URL 規(guī)則的末端。如果沒有顯式地規(guī)定,F(xiàn)lask 本身假設(shè) 末端的名稱是視圖函數(shù)的名稱,。 |
view_func | 當(dāng)請(qǐng)求呈遞到給定的末端時(shí)調(diào)用的函數(shù)。如果沒有提供,可以 在用在 view_functions 字典中以末端 作為鍵名存儲(chǔ),來在之后設(shè)定函數(shù)。 |
defaults | 規(guī)則默認(rèn)值的字典。上面的示例介紹了默認(rèn)值如何工作。 |
subdomain | 當(dāng)使用子域名匹配的時(shí)候,為子域名設(shè)定規(guī)則。如果沒有給定,假 定為默認(rèn)的子域名。 |
**options | 這些選項(xiàng)會(huì)被推送給底層的 Rule 對(duì)象。一個(gè) Werkzeug 的變化是 method 選項(xiàng)的處理。methods是 這個(gè)規(guī)則被限定的方法列表( GET , POST 等等)。默認(rèn)情 況下,規(guī)則只監(jiān)聽 GET (也隱式地監(jiān)聽 HEAD )。從 Flask 0.6 開始,OPTIONS 也被隱式地加入,并且做標(biāo)準(zhǔn)的請(qǐng)求處理。 它們需要作為關(guān)鍵字參數(shù)來給定。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: