亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)/技術(shù)文章
文章詳情頁(yè)

Python restful框架接口開(kāi)發(fā)實(shí)現(xiàn)

瀏覽:22日期:2022-07-30 10:15:45

理解

每一個(gè)URL代表一種資源 客戶端和服務(wù)端之間,傳遞這種資源的某種表現(xiàn)層,客戶端通過(guò)四個(gè)HTTP動(dòng)詞 對(duì)服務(wù)端資源進(jìn)行操作,實(shí)現(xiàn)“表現(xiàn)層狀態(tài)轉(zhuǎn)化” 資源:網(wǎng)絡(luò)的具體信息,如圖片、文字等 表現(xiàn)層:'資源'是一種信息實(shí)體,它可以有多種外在表現(xiàn)形式。我們把'資源'具體呈現(xiàn)出來(lái)的形式,如,文本可以用txt格式表現(xiàn),也可以用HTML格式、XML格式、JSON格式表現(xiàn) 狀態(tài)轉(zhuǎn)化:訪問(wèn)一個(gè)網(wǎng)站,就代表了客戶端和服務(wù)器的一個(gè)互動(dòng)過(guò)程。在這個(gè)過(guò)程中,勢(shì)必涉及到數(shù)據(jù)和狀態(tài)的變化。 4個(gè)HTTP動(dòng)詞:GET用來(lái)獲取資源,POST用來(lái)新建資源(也可以用于更新資源),PUT用來(lái)更新資源,DELETE用來(lái)刪除資源。

安裝 flask restful

1.cmd輸入:pip install flask,安裝flask

2.cmd輸入:pip install flask-restful,安裝flask-restful

安裝過(guò)程中會(huì)出現(xiàn)如下報(bào)錯(cuò):

You are using pip version 9.0.1, however version 19.2.3 is available. You should consider upgrading via the ’python -m pip install --upgrade pip’ comm and.

解決方法

升級(jí)pip python -m pip install --upgrade pip

注意:某些Flask版本下,引入模塊時(shí)采用from flask.ext.restful import Api出錯(cuò),則可以使用from flask_restful import Api

官網(wǎng)教程

例證

restful.py 內(nèi)容:

#!/usr/bin/python3# encoding:utf-8from flask import Flask,requestfrom flask_restful import reqparse, abort, Api, Resource#初始化app、apiapp = Flask(__name__)api = Api(app)LISTS = [ {’parameter’: ’首頁(yè)’}, {’parameter’: ’登錄’}, {’parameter’: ’后臺(tái)’}]# /LISTS/<list_id>(url參數(shù)),判斷輸入的參數(shù)值列表LISTS下標(biāo)越界,越界則退出def abort_if_list_doesnt_exist(list_id): try: LISTS[list_id] except IndexError: abort(404, message='輸入的值,不在范圍內(nèi)')’’’add_argument(’per_page’, type=int, location=’args’) stradd_argument中通過(guò)指定參數(shù)名、參數(shù)類型、參數(shù)獲取方式來(lái)獲取參數(shù)對(duì)象并支持做合法性校驗(yàn)第一個(gè)參數(shù)是需要獲取的參數(shù)的名稱參數(shù)type: 參數(shù)指的類型, 如果參數(shù)中可能包含中文需要使用six.text_type. 或直接不指定type參數(shù)location: 獲取參數(shù)的方式,可選的有args(url中獲取)、json(json類型的)、form(表單方式提交)參數(shù)required:是否必要,默認(rèn)非必要提供 required=True(必須)參數(shù)help:針對(duì)必要的參數(shù),如果請(qǐng)求時(shí)沒(méi)有提供,則會(huì)返回help中相應(yīng)的信息’’’parser = reqparse.RequestParser()#入?yún)arameter,location=’json’表示為入?yún)閖son格式parser.add_argument(’parameter’,location=’json’)# 路由類,函數(shù)get、post、put、delete等實(shí)現(xiàn)http請(qǐng)求方法# url不帶入?yún)?/LISTSclass c_dictList(Resource): #類型get,根據(jù)列表LISTS,處理,返回一個(gè)新的列表r_lists def get(self): r_lists = [] for listV in LISTS: if listV:new_list = {}#LISTS列表存的是字典,遍歷時(shí)為字典listV[’parameter’],可獲取字典值new_list[’parameter’] = listV[’parameter’]#LISTS為列表,index可以查出對(duì)應(yīng)下標(biāo)值new_list[’url’] = ’url/’+ str(LISTS.index(listV))#LISTS列表中添加字典r_lists.append(new_list) return r_lists #類型post,在列表LISTS后添加一個(gè)值,并返回列表值 def post(self): args = parser.parse_args() list_id = len(LISTS) #args[’parameter’],入?yún)? LISTS.append({’parameter’: args[’parameter’]}) return LISTS, 201 # 路由類,函數(shù)get、post、put、delete等實(shí)現(xiàn)http請(qǐng)求方法# url帶入?yún)?/LISTS/<list_id>class c_dict(Resource): #根據(jù)輸入url入?yún)⒅底鳛長(zhǎng)ISTS的下標(biāo),返回該值 def get(self, list_id): url_int = int(list_id) abort_if_list_doesnt_exist(url_int) return LISTS[url_int] #根據(jù)輸入url入?yún)⒅底鳛長(zhǎng)ISTS的下標(biāo),修改該值,并返回列表值 def put(self, list_id): url_int = int(list_id) args = parser.parse_args() #args[’parameter’],入?yún)? parameter = {’parameter’: args[’parameter’]} LISTS[url_int] = parameter return LISTS, 201 #根據(jù)輸入url入?yún)⒅底鳛長(zhǎng)ISTS的下標(biāo),刪除該值 def delete(self, list_id): url_int = int(list_id) abort_if_list_doesnt_exist(url_int) del LISTS[url_int] return ’’, 204#設(shè)置資源路由api.add_resource(類名,url路徑)#url,不帶入?yún)ⅲ纾篽ttp://127.0.0.1:8891/LISTSapi.add_resource(c_dictList, ’/LISTS’)#url,帶入?yún)ⅲ?lt;list_id>為變量值,如:http://127.0.0.1:8891/LISTS/1api.add_resource(c_dict, ’/LISTS/<list_id>’)if __name__ == ’__main__’: #不設(shè)置ip、端口,默認(rèn):http://127.0.0.1:5000/ #app.run(debug=True) #設(shè)置ip、端口 app.run(host='127.0.0.1', port=8891,debug=True)

控制臺(tái)運(yùn)行結(jié)果:

Serving Flask app '123' (lazy loading) * Environment: productionWARNING: This is a development server. Do not use it in a productiondeployment. Use a production WSGI server instead. * Debug mode: onRestarting with stat * Debugger is active! * Debugger PIN: 279-443-943 * Running on http://127.0.0.1:8891/ (Press CTRL+C toquit)

postman調(diào)用結(jié)果

url不帶參數(shù)

get

Python restful框架接口開(kāi)發(fā)實(shí)現(xiàn)

post,有請(qǐng)求入?yún)ⅲ袷綖閖son,入?yún)⒅底芳拥搅斜砗竺?/p>

Python restful框架接口開(kāi)發(fā)實(shí)現(xiàn)

url帶參數(shù)get,根據(jù)url入?yún)⒅等缦聢D值=1,作為L(zhǎng)ISTS的下標(biāo),獲取列表值

Python restful框架接口開(kāi)發(fā)實(shí)現(xiàn)

put ,根據(jù)url入?yún)⒅等缦聢D值=1,作為L(zhǎng)ISTS的下標(biāo),修改該列表值為請(qǐng)求入?yún)⒅担卿浉臑橛唵?/p>

Python restful框架接口開(kāi)發(fā)實(shí)現(xiàn)

put ,根據(jù)url入?yún)⒅等缦聢D值=2,作為L(zhǎng)ISTS的下標(biāo),刪除該值,成功返回狀態(tài)204

Python restful框架接口開(kāi)發(fā)實(shí)現(xiàn)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日韩精品一区二区三区国语自制 | 免费看一级欧美毛片视频 | 黄色网址发给我 | 131美女爱做免费高清视频 | 啪啪国产 | 国产一级aa大片毛片 | 嘿嘿嘿视频免费网站在线观看 | 色极影院| 特级毛片s级全部免费 | 国产精品久久国产三级国电话系列 | 久久精品爱国产免费久久 | 国产精品三级a三级三级午夜 | 鲁久久 | 久久国产精品免费看 | 国产高清国内精品福利色噜噜 | 手机免费看黄在线高清视频 | 久久国产欧美 | 亚洲一级色 | 久久精品中文字幕有码日本 | 日本高清动作片www欧美 | 美国特级成人毛片 | 亚洲日本中文字幕在线2022 | 欧美激情精品久久久久久大尺度 | 国产成a人片在线观看视频 国产成a人片在线观看视频99 | 一区在线免费观看 | 羞羞色院91 | 亚洲欧美精品日韩欧美 | 国产精品麻豆久久99 | 毛片啪啪啪 | 中文字幕一区二区在线视频 | 大尺度做爰视频吃奶www | 色婷婷在线观看视频 | 高清欧美日韩一区二区三区在线观看 | 亚洲成在人线久久综合 | 亚洲综合影院 | 特黄一级毛片 | 99精品国产自产在线观看 | 婷婷91| 久久精品94精品久久精品动漫 | 青青草精品在线视频 | fc2成年免费共享视频网站 |