Flask總結(二) URL對映

2021-07-14 17:30:49 字數 1613 閱讀 3059

flask用裝飾器實現url對映。

先來看乙個例子:

from flask import flask

def hello_world():

return 'welcome to flask ^_^'

def test(id):

return 'the id is %d'%id

if __name__ == "__main__":

執行,然後在瀏覽器中訪問http://localhost:5000/,瀏覽器中會顯示"

welcome to flask ^_^"。這是乙個簡單的url對映,即把固定的url對映到固定的函式。此處是把"/"對映到hello_world這個函式。

更高階自由的url對映形式體現在test這個函式中,在瀏覽器中訪問http://localhost:5000/test/123456,瀏覽器中會顯示"the id is 123456"。這是把url的某乙個位置,對映成str或int轉換器,在這個例子中的表現是""這部分,它可以識別該位置的任何int形式並作為test函式的輸入引數。""第一部分表示轉換器,第二部分表示引數名稱,必須跟對應函式的引數相同。值得一提的是,對str轉換器來說,可以省略引數說明。

用過spring框架的可能會想到url對映是否會支援正規表示式,很遺憾就目前的資料來看,flask暫不支援正規表示式。雖然我們可以實現這個支援,但是盡量不要用到這種形式,這是一種不好的設計方式。

實現正規表示式的方式如下:

from flask import flask

from werkzeug.routing import baseconverter

class regexconverter(baseconverter):

def __init__(self, url_map, *items):

super(regexconverter, self).__init__(url_map)

self.regex = items[0]

def example(email):

return "email: %s" % email

if __name__ == '__main__':

參考:

另外,flask除了支援url引數對映,還支援方法對映,可以在route引數列表中新增methods欄位,methods欄位是乙個列表,如果進行宣告那麼僅僅支援列表中列出的方法,預設只支援"get"方法。

講解這個庫,同樣從乙個例子開始:

from flask import flask

from flask_restful import resource,api

class helloworld(resource):

def get(self,name):

return

api.add_resource(helloworld,'/')

if __name__ == "__main__":

首先用api()方法例項化乙個api,然後通過新增資源的形式把類和url關聯起來。在相關聯的類中可以定義get/post/delete/options/put等方法。

我也將會在之後新增一些值得提及的技術點。

Flask學習筆記之url和函式對映

我們首先回顧下第一天的內容,通過下面 我們就能做到固定url到函式的對映,在根路徑下就會返回hello world def hello world return hello world 但有時候我們的url路徑是不固定的,例如有些 針對不同的使用者就是不同的url,傳入的資料也就不一樣。例如下面的 ...

URL萬用字元對映

url萬用字元對映 我們還可以通過萬用字元對url對映進行配置,萬用字元有 和 兩個字元。其中 表示1個字元,表示匹配多個字元,表示匹配0個或多個路徑。例如 helloworld index?可以匹配 helloworld indexa helloworld indexb 但不能匹配 hellowo...

flask頁面URL鏈結

flask的web開發過程當中如果怎麼實現頁面的跳轉呢?這裡使用了url反轉 使用url for 來實現來獲取檢視函式名 這裡是 linklogin 目錄如下 link index.html 如下 登入 link login.html 如下 link index.py 如下 from flask i...