国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

flask-restful使用總結(jié)

2020-02-15 23:56:04
字體:
供稿:網(wǎng)友

Flask-RESTful是一個用于快速創(chuàng)建RESTful API接口的Flask擴(kuò)展。使用Flask-RESTful可以很快速方便地創(chuàng)建一個RESTful風(fēng)格的接口應(yīng)用程序。

1、安裝

pip install flask_restful

2、全部代碼

from flask import Flaskfrom flask_restful import reqparse, abort, Api, Resourceapp = Flask(__name__)api = Api(app)TODOS = {  'todo1': {'task': 'build'},  'todo2': {'task': 'bui2'},  'todo3': {'task': 'bui3'}}parser = reqparse.RequestParser()parser.add_argument('task')class Todo(Resource):  def get(self, todo_id):    return TODOS[todo_id]  def delete(self, todo_id):    del TODOS[todo_id]    return '', 204  def put(self, todo_id):    args = parser.parse_args()    task = {'task': args['task']}    TODOS[todo_id] = task    return task, 201class TodoList(Resource):  def get(self):    return TODOSapi.add_resource(TodoList, '/todos')api.add_resource(Todo, '/todos/<todo_id>')if __name__ == '__main__':  app.run(debug=True)

3、代碼說明

1). 初始化

在當(dāng)前程序初始化一個flask-restful的api實例:

api = Api(app)

2). 定義資源類

資源類是restful接口的具體實現(xiàn),需要繼承Resource類。在類中可以定義get、post等符合restful規(guī)范的接口。

class Todo(Resource):  def get(self, todo_id):    return TODOS[todo_id]  def delete(self, todo_id):    del TODOS[todo_id]    return '', 204  def put(self, todo_id):    args = parser.parse_args()    task = {'task': args['task']}    TODOS[todo_id] = task    return task, 201

3). 參數(shù)解析

雖然 Flask 提供了簡單的方法訪問請求數(shù)據(jù), 但是對于表單數(shù)據(jù)處理還是比較麻煩. Flask-RESTful 提供了 reqparse 一種類似 argparse 參數(shù)解析機(jī)制以簡化參數(shù)處理.

parser = reqparse.RequestParser(): reqparse使用RequestParser() 可以從 flask.Request.values,以及 flask.Request.json 解析值。這里創(chuàng)建了一個解析對象parser。

parser.add_argument('task'):向parser對象中添加你要關(guān)注的命令行參數(shù)和選項,每一個add_argument方法對應(yīng)一個你要關(guān)注的參數(shù)或選項。

parser.parse_args():調(diào)用parse_args()方法進(jìn)行解析,解析成功之后即可使用。

4). add_argument擴(kuò)展

對于必傳的參數(shù),可以設(shè)置required=True

parser.add_argument('name', type=str, required=True,help="Name cannot be blank!")

傳多個值,使用 action='append'

parser.add_argument('name', type=str, action='append')

使用:

curl http://api.example.com -d "Name=bob" -d "Name=sue" -d "Name=joe"

獲取的參數(shù)為:

args = parser.parse_args()args['name']  # ['bob', 'sue', 'joe']            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 天台县| 金华市| 双峰县| 庆安县| 克拉玛依市| 西平县| 通河县| 苏尼特左旗| 娱乐| 孝义市| 太和县| 和田县| 清徐县| 翁牛特旗| 贵溪市| 连南| 合水县| 邵阳市| 怀宁县| 绥化市| 石林| 喀喇沁旗| 红原县| 蕉岭县| 山东| 泰来县| 庆元县| 略阳县| 莱州市| 怀宁县| 大安市| 沁水县| 丰原市| 柞水县| 岗巴县| 松江区| 宿松县| 绵阳市| 芒康县| 贵德县| 景东|