flask訪問404 FLASK部落格系列3 路由

2021-10-13 17:36:18 字數 1913 閱讀 3263

斷更了幾天,我又回來了。

今天我們來講講路由。這個路由可不是我們家裡用的路由,flask路由規則都是基於werkzeug的路由模組的,它還提供了很多強大的功能。現代 web 應用都使用有意義的 url ,這樣有助於使用者記憶,網頁會更得到使用者的青睞, 提高回頭率。

從上篇文章我們知道,使用route()

def hello_world():

return 'hello world!'

def hello_world():

return 'hello world!'

聰明的同學已經猜到了。flask通過把url的一部分標記為,就可以實現在url中新增變數。

def show_user_ifno(username):

return 'hi %s' % username

我們只需要在位址列中輸入 你將在頁面上看到「hi jack」的字樣。url路徑彙總/hi/後面的引數被作為show_user_info()函式的username引數傳了進來,如下圖。

在宣告變數時,我們還可以指定變數被對映的型別。使用方法也很簡單,我們只需要加乙個轉換器即可。通過使用, 為變數指定規則。

比如:def get_user(user_id):

return 'user id: %d' % user_id

如果你嘗試訪問 你會看到404錯誤,如下圖:

這是應為引數型別轉換器int:幫你控制好了傳入引數的型別只能是整形。我們來嘗試一下訪問 。頁面就會有 「user id: 123」顯示出來。如下圖:

我們接著來看看,flask支援哪幾種轉換器:

string

(預設值) 接受任何不包含斜槓的文字

int

接受正整數

float

接受正浮點數

path

類似string,但可以包含斜槓

uuid

接受 uuid 字串

在url路徑中,「/」被用作路徑分隔符。當它被寫在url路徑的開頭時,則表明本路徑是乙個絕對路徑。當它被寫在路徑中間時 ,它被用作隔離路徑的層級。那麼,當它被寫在最後時,它的作用又是什麼呢?

我們來看下面的例子。

def hello():

return 'hello world!'

def hi():

return 'hello world!'

第1個路徑沒有「/」分隔符,它看上去更像是乙個檔名;第2個路徑的最後「/」分隔符,它看上去更像是乙個目錄。兩種方式對它們的訪問效果可是有很大不同的:有「/」作為結尾的路徑除了可以接受對其本身的訪問,也可以接受相同路徑字首但不帶「/」結尾的路徑訪問;而不帶「/」結尾的路徑樣式則沒有此效果。下面我們以**的形式來呈現給大家看,看完你就會一目了然。

flask 404 慘痛的教訓

頁面提示 404 not found 然後就覺得,肯定是那個資源不存在 以為出錯的地方 return redirect url for common.index tutor common.route index tutor login required def index tutor tutor t...

Flask 配置和訪問

路由的請求和響應 defhello world return hello world def hello world 檢視函式 if name main 系統預設配置,字典格式 settings.py 配置檔案 debug true載入配置檔案 請求頭 key value 形式 請求體 conten...

flask框架(一) 初識Flask

一 初識flask 1.什麼是flask flask是乙個python編寫的web框架,只是乙個核心,預設依賴2個外部庫 jinja2模板引擎和wsgi工具集 werkzeug。2.安裝flask pip install flask3.建立flask程式 專案目錄詳解 static資料夾 用於存放各...