99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Flask 基于類的視圖

2021-08-11 11:16 更新

0.7 新版功能.

URL 路由注冊

在路由系統(tǒng)中定義規(guī)則可以的方法可以概括為三種:

  1. 使用 flask.Flask.route() 裝飾器
  2. 使用 flask.Flask.add_url_rule() 函數(shù)
  3. 直接訪問暴露為 flask.Flask.url_map 的底層的 Werkzeug 路由系統(tǒng)

路由中的變量部分可以用尖括號指定( /user/<username>)。默認情況下,URL 中的變量部分接受任何不帶斜線的字符串,而 <converter:name> 也可以指定不 同的轉換器。

變量部分以關鍵字參數(shù)傳遞給視圖函數(shù)。

下面的轉換器是可用的:

string 接受任何不帶斜線的字符串(默認的轉換器)
int 接受整數(shù)
float int ,但是接受浮點數(shù)
path 和默認的相似,但也接受斜線

這里是一些例子:

@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

需要注意的一個重要細節(jié)是 Flask 處理結尾斜線的方式。你可以應用下面兩個 規(guī)則來保證 URL 的唯一:

  1. 如果規(guī)則以斜線結尾,當用戶以不帶斜線的形式請求,用戶被自動重定向到 帶有結尾斜線的相同頁面。
  2. 如果規(guī)則結尾沒有斜線,當用戶以帶斜線的形式請求,會拋出一個 404 not found 。

這與 web 服務器處理靜態(tài)文件的方式一致。這使得安全地使用相對鏈接地址成為 可能。

你可以為同一個函數(shù)定義多個規(guī)則。無論如何,他們也要唯一。也可以給定默認值。 這里給出一個接受可選頁面的 URL 定義:

@app.route('/users/', defaults={'page': 1})
@app.route('/users/page/<int:page>')
def show_users(page):
    pass

這指定了 /users/ 為第一頁的 URL ,/users/page/N 為第 N 頁的 URL 。

以下是 route()add_url_rule() 接受的參數(shù)。兩者唯一的區(qū)別是,帶有路由參數(shù)的視圖函數(shù)用裝飾器定義,而不是 view_func 參數(shù)。

rule URL 規(guī)則的字符串
endpoint 注冊的 URL 規(guī)則的末端。如果沒有顯式地規(guī)定,F(xiàn)lask 本身假設 末端的名稱是視圖函數(shù)的名稱,。
view_func 當請求呈遞到給定的末端時調(diào)用的函數(shù)。如果沒有提供,可以 在用在 view_functions 字典中以末端 作為鍵名存儲,來在之后設定函數(shù)。
defaults 規(guī)則默認值的字典。上面的示例介紹了默認值如何工作。
subdomain 當使用子域名匹配的時候,為子域名設定規(guī)則。如果沒有給定,假 定為默認的子域名。
**options 這些選項會被推送給底層的 Rule 對象。一個 Werkzeug 的變化是 method 選項的處理。methods是 這個規(guī)則被限定的方法列表( GET , POST 等等)。默認情 況下,規(guī)則只監(jiān)聽 GET (也隱式地監(jiān)聽 HEAD )。從 Flask 0.6 開始,OPTIONS 也被隱式地加入,并且做標準的請求處理。 它們需要作為關鍵字參數(shù)來給定。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號