国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 保亭| 闻喜县| 麦盖提县| 巧家县| 南通市| 泉州市| 澄江县| 通许县| 上犹县| 石城县| 吉水县| 屏南县| 修水县| 丹巴县| 罗平县| 永安市| 霍州市| 清苑县| 台东县| 镇巴县| 平乐县| 新安县| 长宁县| 饶阳县| 连州市| 镇江市| 宁化县| 婺源县| 龙口市| 内乡县| 麻城市| 桑日县| 江山市| 谷城县| 井研县| 巴青县| 岢岚县| 嫩江县| 台江县| 汕头市| 台北县|