参考文章http://www.pythondoc.com/Flask-RESTful/quickstart.html
http://www.pythondoc.com/Flask-RESTful/reqparse.html
总结一下这个模块:
1.可以利用 add_resource 批量处理url,不用再在给每个函数之前加上@app.route
2.flask-restful最重要的功能就是对于post携带数据的请求的参数解析,大致可以理解为:
首先需要创建对象:
parser = reqparse.RequestParser()
parser.add_argument('task', type=str)
然后解析参数储存在args中
args = parser.parse_args()
参数位置
parser.add_argument('name', type=int, location='form')
# Look only in the querystring
parser.add_argument('PageSize', type=int, location='args')
# From the request headers
parser.add_argument('User-Agent', type=str, location='headers')
# From http cookies
parser.add_argument('session_id', type=str, location='cookies')
# From file uploads
parser.add_argument('picture', type=werkzeug.datastructures.FileStorage, location='files')
更换名称
如果你不想以参数名来获取这个参数值,那么可以:
parser.add_argument('name', type=str, dest='public_name')
args = parser.parse_args()
args['public_name']
必需的参数
要求一个值传递的参数,只需要添加 required=True
来调用 add_argument()
。
parser.add_argument('name', type=str, required=True,
help="Name cannot be blank!")
获取不到的参数
我们将"session_id"设置成cookie的话,我们的args是获取不到的:
parser.add_argument('session_id',type=str,location="cookies")
args=parser.parse_args()
发送请求:
curl http://localhost:5000/todos -d "task=soming new" -d "name=mason" -d "session_id=hello word" -X POST -v
打印args
多个值传递
parser.add_argument('session_id',type=str,location="cookies",action="append")
这时候对于session_id传递值的时候就需要: -d "session_id=123" -d "session_id=456"这样了
这些是我觉得文章中比较重要的点,自己总结归纳了一下