




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第flask路由分模塊管理及自定義restful響應(yīng)格式詳解目錄一、flask路由分模塊管理1.1、使用藍(lán)圖1.2、使用flask_restful二、自定義flask_restful響應(yīng)格式
一、flask路由分模塊管理
1.1、使用藍(lán)圖
在flask中可以使用藍(lán)圖Blueprint來進(jìn)行創(chuàng)建路由進(jìn)行分模塊。具體操作,我們可以在項(xiàng)目根目錄下創(chuàng)建一個controller文件夾來存儲分模塊的路由。
在controller文件夾里創(chuàng)建product_controller.py,在里面如下寫法引入藍(lán)圖,并且注冊藍(lán)圖:
fromflaskimportBlueprint
product_blue=Blueprint('product',__name__)
#定義藍(lán)圖路徑及請求方法和請求返回邏輯
@product_blue.route('/get',methods=['get','post'])
defgetproduct():
return'product'
@product_blue.route('/search',methods=['get','post'])
defsearchproduct():
return'search'
那么我們在項(xiàng)目主邏輯文件main.py中,去引入并注冊這個藍(lán)圖:
fromflaskimportFlask
fromduct_controllerimportproduct_blue
app=Flask(__name__)
#商品模塊
app.register_blueprint(product_blue,url_prefix='/product')
if__name__=='__main__':
app.run()
接下來我們運(yùn)行程序,可以看到如下效果:
可以看到我們使用藍(lán)圖分模塊的創(chuàng)建已經(jīng)生效了,這樣如果模塊對的話,我們就方便管理了。不會造成代碼全部冗余在一個主文件中。
1.2、使用flask_restful
那么相比與藍(lán)圖Blueprint,flask_restful的優(yōu)勢就在于它能夠做更多的操作,比如參數(shù)的驗(yàn)證,返回直接字典就能解析成json。
首先我們輸入命令pip3installflask_restful安裝flask_restful。在product_controller中寫入如下代碼:
fromflask_restfulimportResource,reqparse
classProductView(Resource):
@staticmethod
defpost():
parse=reqparse.RequestParser()
parse.add_argument('product_id',type=str,help='商品id必傳',required=True,trim=True)
args=parse.parse_args()
product_id=duct_id
return{
'msg':'商品id是'+product_id,
'code':200
@staticmethod
defget():
return{
'msg':'商品',
'code':200
那么main.py主文件中修改如下:
fromduct_controllerimportProductView
app=Flask(__name__)
api=Api(app)
api.add_resource(ProductView,'/product',endpoint='product')
if__name__=='__main__':
app.run()
現(xiàn)在已經(jīng)是restful形式的api了,我們采用apifox或者postman測試請求接口如下:
可以看到get請求成功,但是在post請求時,我們沒有傳必傳參數(shù),所以出現(xiàn)了報(bào)錯。我們嘗試將必傳參數(shù)加上:
那么可以看到將必傳的參數(shù)加上后,請求成功。兩種模式可以共存,但是一般我們只用一種就行了。
相信細(xì)心的小伙伴已經(jīng)發(fā)現(xiàn),失敗和成功返回的數(shù)據(jù)格式不一樣,成功有code,失敗卻沒有code,那么我想自定義失敗返回的數(shù)據(jù)格式,將怎么操作呢,接下來自定義flask_restful的錯誤響應(yīng)。
二、自定義flask_restful響應(yīng)格式
在根目錄下創(chuàng)建errors.py,寫入如下代碼:
"""
designthecustomerrorresponseofflask-restful
fromflask_restfulimportabort
defgenerate_response(msg,status):
return{
'code':status,
'msg':msg,
defcustom_abort(http_status_code,*args,**kwargs):
ifhttp_status_code==400:
abort(400,**generate_response(msg=[kwargs.get('message')],status=http_status_code))
abort(http_status_code)
我們將錯誤狀態(tài)拎出來自定義返回格式。在main.py主文件中加入這兩行代碼:
fromerrorsimportcustom_abort
flask_restful.abort=c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文學(xué)常識單招試題及答案大全
- 提高技巧的2025年多媒體應(yīng)用設(shè)計(jì)師考試試題及答案
- 系統(tǒng)分析師考試復(fù)習(xí)試題及答案
- 階段性測試的中級社會工作者試題及答案
- 蘇州焊工培訓(xùn)試題及答案
- 系統(tǒng)集成項(xiàng)目溝通技巧試題及答案
- 多媒體藝術(shù)表現(xiàn)形式探索試題及答案
- 熱點(diǎn)問題2025年系統(tǒng)分析師考試試題及答案
- Msoffice功能解析與試題及答案
- 系統(tǒng)集成項(xiàng)目管理成熟度模型試題及答案
- 中國基建課件教學(xué)課件
- EPC光伏項(xiàng)目投標(biāo)方案(技術(shù)方案)
- 2023企業(yè)數(shù)字化轉(zhuǎn)型建設(shè)方案數(shù)據(jù)中臺、業(yè)務(wù)中臺、AI中臺
- 國家開放大學(xué)本科《人文英語3》一平臺機(jī)考真題及答案(第二套)
- 廣西壯族自治區(qū)南寧市2023-2024學(xué)年八年級下學(xué)期7月期末歷史試題(無答案)
- 江蘇省揚(yáng)州市2023-2024學(xué)年高二下學(xué)期6月期末考試歷史試題
- 初中必背古詩文
- 教科版四年級下冊科學(xué)期末測試卷含答案【研優(yōu)卷】
- JBT 14615-2024 內(nèi)燃機(jī) 活塞運(yùn)動組件 清潔度限值及測定方法(正式版)
- 生態(tài)文明與環(huán)境保護(hù)法智慧樹知到期末考試答案章節(jié)答案2024年東北林業(yè)大學(xué)
- MOOC 樹木學(xué)-北京林業(yè)大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論