flask的自定義轉換器,模板渲染以及請求與響應

2022-06-09 02:45:09 字數 3335 閱讀 2782

1.匯入from werkzeug.routing import baseconverter

2.寫個類繼承baseconverter,實現三個方法:def __init__,def to_python, def to_url

4.在路由轉換器中使用3中的regex("傳正則")

5.當路由被訪問後,regex("傳正則")會匹配結果,把結果傳遞給to_python,可以進行再次處理,to_python處理好的結果,會傳遞給響應函式的形參

6 當用url做反向解析的時候,傳遞給路由轉化器的引數,會經過to_url,進行處理,處理以後,再拼接到路由

**:

from flask import flask, url_for

from werkzeug.routing import baseconverter

class regexconverter(baseconverter):

"""自定義url匹配正規表示式

"""def __init__(self, map, regex):

super(regexconverter, self).__init__(map)

self.regex = regex

def to_python(self, value):

"""路由匹配時,匹配成功後傳遞給檢視函式中引數的值

"""print("to_python",value,type(value))

return int(value)+1

def to_url(self, value):

"""使用url_for反向生成url時,傳遞的引數經過該方法處理,返回的值用於生成url中的引數

"""val = super(regexconverter, self).to_url(value)

return val+"222"

# 新增到flask中

# 正則匹配處理結果,要交給to_python,to_python函式可以對匹配處理結果做處理

def index(nid):

print("index",nid,type(nid))

print(url_for('index', nid='888'))

return 'index'

if __name__ == '__main__':

from flask import flask, render_template, markup

users = ,

2: ,

3: ,

}def func1(arg):

return markup(f"")

def index():

return render_template("index.html", user=users, name='godsee', ht1=func1, ht="god is handsome")

# 或者

# data =

# return render_template("index.html", **data)

if __name__ == '__main__':

index.html檔案

}}}

}}}

}}

圖展:

# 請求相關的資訊

# print("請求方法",request.method)#請求方法

# print("get請求的引數",request.args)# get請求的引數

# print("post請求的引數",request.form) #post請求的引數

# print("post,與get的所有引數",request.values)#post,與get的所有引數

# print("請求的cookies",request.cookies)#請求的cookies

# 請求相關資訊

# request.method 提交的方法

# request.args get請求提及的資料

# request.form post請求提交的資料

# request.values post和get提交的資料總和

# request.cookies 客戶端所帶的cookie

# request.headers 請求頭

# request.path 不帶網域名稱,請求路徑

# request.full_path 不帶網域名稱,帶引數的請求路徑

# request.script_root

# request.url 帶網域名稱帶引數的請求路徑

# request.base_url 帶網域名稱請求路徑

# request.url_root 網域名稱

# request.host_url 網域名稱

# request.host 127.0.0.1:500

#關於響應我們已經將了4劍客,如果新增響應頭,以及cookie

#要新增這些東西必須,匯入make_response,

response = make_response("ok")

#response = make_response(render_template("login.html"))

#response = make_response(redirect("/login"))

#設定cookie

#response.set_cookie("key","val")

#如何刪除cookie

#response.delete_cookie("key")

# 如何設定響應頭

Flask自定義轉換器

flask框架中自帶的轉換器 default converters flask框架中的轉換器的自定義,具體流程如下 匯入轉換器基類 在 flask 中,所有的路由的匹配規則都是使用轉換器物件進行記錄 自定義轉換器 自定義類繼承於轉換器基類 新增轉換器到預設的轉換器字典中 使用自定義轉換器實現自定義匹...

flask自定義re轉換器

自帶的幾種轉換器 default converters 自定義re轉換器 from werkzeug.routing import baseconverter 正則轉換器 class regexconverter baseconverter def init self,url map,args su...

flask 自定義url轉換器

可以指定url的規制,對url做一定的限制。首先我們提乙個需求,根據需求來寫 現在我們假設乙個url需要滿足 號碼的格式才能訪問我們的函式檢視,例如這樣的url 127.0.0.1 5000 user 號碼 首先匯入baseconverter from werkzeug.routing import...