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 flaskfrom 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...