flask-restful使用总结
Flask-RESTful是一个用于快速创建RESTfulAPI接口的Flask扩展。使用Flask-RESTful可以很快速方便地创建一个RESTful风格的接口应用程序。
1、安装
pipinstallflask_restful
2、全部代码
fromflaskimportFlask fromflask_restfulimportreqparse,abort,Api,Resource app=Flask(__name__) api=Api(app) TODOS={ 'todo1':{'task':'build'}, 'todo2':{'task':'bui2'}, 'todo3':{'task':'bui3'} } parser=reqparse.RequestParser() parser.add_argument('task') classTodo(Resource): defget(self,todo_id): returnTODOS[todo_id] defdelete(self,todo_id): delTODOS[todo_id] return'',204 defput(self,todo_id): args=parser.parse_args() task={'task':args['task']} TODOS[todo_id]=task returntask,201 classTodoList(Resource): defget(self): returnTODOS api.add_resource(TodoList,'/todos') api.add_resource(Todo,'/todos/') if__name__=='__main__': app.run(debug=True)
3、代码说明
1).初始化
在当前程序初始化一个flask-restful的api实例:
api=Api(app)
2).定义资源类
资源类是restful接口的具体实现,需要继承Resource类。在类中可以定义get、post等符合restful规范的接口。
classTodo(Resource): defget(self,todo_id): returnTODOS[todo_id] defdelete(self,todo_id): delTODOS[todo_id] return'',204 defput(self,todo_id): args=parser.parse_args() task={'task':args['task']} TODOS[todo_id]=task returntask,201
3).参数解析
虽然Flask提供了简单的方法访问请求数据,但是对于表单数据处理还是比较麻烦.Flask-RESTful提供了reqparse一种类似argparse参数解析机制以简化参数处理.
parser=reqparse.RequestParser():reqparse使用RequestParser()可以从flask.Request.values,以及flask.Request.json解析值。这里创建了一个解析对象parser。
parser.add_argument('task'):向parser对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项。
parser.parse_args():调用parse_args()方法进行解析,解析成功之后即可使用。
4).add_argument扩展
对于必传的参数,可以设置required=True
parser.add_argument('name',type=str,required=True, help="Namecannotbeblank!")
传多个值,使用action='append'
parser.add_argument('name',type=str,action='append')
使用:
curlhttp://api.example.com-d"Name=bob"-d"Name=sue"-d"Name=joe"
获取的参数为:
args=parser.parse_args() args['name']#['bob','sue','joe']
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。