




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第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來(lái)進(jìn)行創(chuàng)建路由進(jìn)行分模塊。具體操作,我們可以在項(xiàng)目根目錄下創(chuàng)建一個(gè)controller文件夾來(lái)存儲(chǔ)分模塊的路由。
在controller文件夾里創(chuàng)建product_controller.py,在里面如下寫(xiě)法引入藍(lán)圖,并且注冊(cè)藍(lán)圖:
fromflaskimportBlueprint
product_blue=Blueprint('product',__name__)
#定義藍(lán)圖路徑及請(qǐng)求方法和請(qǐng)求返回邏輯
@product_blue.route('/get',methods=['get','post'])
defgetproduct():
return'product'
@product_blue.route('/search',methods=['get','post'])
defsearchproduct():
return'search'
那么我們?cè)陧?xiàng)目主邏輯文件main.py中,去引入并注冊(cè)這個(gè)藍(lán)圖:
fromflaskimportFlask
fromduct_controllerimportproduct_blue
app=Flask(__name__)
#商品模塊
app.register_blueprint(product_blue,url_prefix='/product')
if__name__=='__main__':
app.run()
接下來(lái)我們運(yùn)行程序,可以看到如下效果:
可以看到我們使用藍(lán)圖分模塊的創(chuàng)建已經(jīng)生效了,這樣如果模塊對(duì)的話(huà),我們就方便管理了。不會(huì)造成代碼全部冗余在一個(gè)主文件中。
1.2、使用flask_restful
那么相比與藍(lán)圖Blueprint,flask_restful的優(yōu)勢(shì)就在于它能夠做更多的操作,比如參數(shù)的驗(yàn)證,返回直接字典就能解析成json。
首先我們輸入命令pip3installflask_restful安裝flask_restful。在product_controller中寫(xiě)入如下代碼:
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測(cè)試請(qǐng)求接口如下:
可以看到get請(qǐng)求成功,但是在post請(qǐng)求時(shí),我們沒(méi)有傳必傳參數(shù),所以出現(xiàn)了報(bào)錯(cuò)。我們嘗試將必傳參數(shù)加上:
那么可以看到將必傳的參數(shù)加上后,請(qǐng)求成功。兩種模式可以共存,但是一般我們只用一種就行了。
相信細(xì)心的小伙伴已經(jīng)發(fā)現(xiàn),失敗和成功返回的數(shù)據(jù)格式不一樣,成功有code,失敗卻沒(méi)有code,那么我想自定義失敗返回的數(shù)據(jù)格式,將怎么操作呢,接下來(lái)自定義flask_restful的錯(cuò)誤響應(yīng)。
二、自定義flask_restful響應(yīng)格式
在根目錄下創(chuàng)建errors.py,寫(xiě)入如下代碼:
"""
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)
我們將錯(cuò)誤狀態(tài)拎出來(lái)自定義返回格式。在main.py主文件中加入這兩行代碼:
fromerrorsimportcustom_abort
flask_restful.abort=c
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中醫(yī)養(yǎng)生保健調(diào)理師職業(yè)技能資格知識(shí)考試題與答案
- 2026年山東省春季高考模擬考試英語(yǔ)試卷試題(含答案詳解)
- 勞動(dòng)改造培訓(xùn)課件
- 安全責(zé)任培訓(xùn)課件
- 美發(fā)師培訓(xùn)課件
- 辣椒代加工協(xié)議合同協(xié)議
- 殘疾服務(wù)協(xié)議書(shū)
- 寧夏小學(xué)五年級(jí)上冊(cè)數(shù)學(xué)應(yīng)用題100道及答案
- 道路監(jiān)理實(shí)施合同協(xié)議
- 過(guò)戶(hù)給勞務(wù)派遣合同協(xié)議
- MOOC 國(guó)際交流英文寫(xiě)作中國(guó)大學(xué)慕課答案
- GB/T 43632-2024供應(yīng)鏈安全管理體系供應(yīng)鏈韌性的開(kāi)發(fā)要求及使用指南
- 《光伏發(fā)電工程預(yù)可行性研究報(bào)告編制規(guī)程》(NB/T32044-2018)中文版
- 自動(dòng)焊錫機(jī)安全操作規(guī)程培訓(xùn)
- 空管自動(dòng)化系統(tǒng)的基本組成與功能課件
- 2023年杭州市規(guī)劃局拱墅規(guī)劃分局編外人員招考考前自測(cè)高頻難、易考點(diǎn)模擬試題(共500題)含答案詳解
- 品牌國(guó)際化對(duì)企業(yè)出口競(jìng)爭(zhēng)力和品牌價(jià)值的影響研究
- 方特企業(yè)管理制度
- 醫(yī)用云膠片方案
- GB/T 5744-2023船用氣動(dòng)快關(guān)閥
- 煙花爆竹行業(yè)事故應(yīng)急救援處置培訓(xùn)
評(píng)論
0/150
提交評(píng)論