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']
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。