本文共 3554 字,大约阅读时间需要 11 分钟。
flask-restful:
我他么的,蓝图最终还是不能在restful中使用。。不过也不需要蓝图来使用。。一样可以拆分为多个,但是不能像java一样,一个函数响应两个访问方法。在新建立一个api类,继承自Resource。在里面写 get/post方法
然后通过api.add_resource(HelloResource,'/hello')
来写下来路由。
flask-restless:
flask-rest-jsonapi:
"""JSON , Respons单个对象的格式: { "status" :200, "meg" : "ok", "data" : { "property":"value", "property":"value", "property":"value", } }多个对象的格式: { "status" :200, "meg" : "ok", "data" : [ { "property":"value", "property":"value", "property":"value", }, { "property":"value", "property":"value", "property":"value", },//json object { "property":"value", "property":"value", "property":"value", }//json object ] } """
代码中也有记下:
data:object是不能够使用的,会报错。对象不能json序列化解决方案:使用格式化工具
例如:
goods_fields = { 'g_name' : fields.String, 'g_price' : fields.Float}嵌套使用: goods_data_fields = { 'status': fields.Integer, 'meg' : fields.String, 'data' : fields.Nested(goods_fields)}
如果某一个字段写在格式模版里面,但是传入数据对应起来里面没有这个字段的,那么默认为null
如果模版字段少于数据,那么只显示模版格式字段
总而言之,以格式模版为主。
get goods List:使用fields.List()
例如:
goodsList_data_fields = { 'status': fields.Integer, 'meg': fields.String, 'data': fields.List(fields.Nested(goods_fields))}
'name' : fields.String(attribute='g_name')
模版指定默认值,default_value: default=‘xxx’
fields:
delete 方法,删除
put 方法,更新
patch 方法,差量更新,没有传的值,从查到的值里面,用旧的值。
name = c_name or goods.c_name
abort(404,message=‘good no exist’,meg=‘fail’),也可以扩充自带的状态码
parser = reqparse.RequestParser()parser.add_argument('g_name',type=str,required=True,help='please input good name')parser.add_argument('g_price',type=int,help='please input good price')#传多个值:设置append属性parser.add_argument('mu',action='append')## 使用: @marshal_with(goods_data_fields) def post(self): # g_name = request.form.get('g_name') # g_price = request.form.get('g_price') args = parser.parse_args() g_name = args.get('g_name') g_price = args.get('g_price')
parser_copy = parser.copy()//复制一个出来。
restful: 软件架构风格,前后端分离,后端只负责数据处理,前端通过异步请求的方式和后端交互。路径是名词,url代表一种资源。通过http请求方法来实现资源转换
flask-restful: 在api上注册使用
难点:数据(对象)的序列化,指定字段的输出模版。(其实也都还好)
输入过滤,reqparse.RequestParser
abort:
老师最后讲了一些关于爬虫与反爬虫的事例。
转载地址:http://mcywi.baihongyu.com/