SQLAlchemy+Flask-RESTful使用(四)
前言
顺利出到4啦,其实学习过程中发现了不少错误,不过有些实在是没啥代表性.
最近买了两本小程序和安卓方面的书,其实从初中开始,想搞编程的目的就是写些安卓软件.
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。现在看来不太可能了.拿来当当兴趣爱好还是没问题的
这几天不是没更新,是在前面的章节里增加/勘误
变更记录
# 19.4.15 起笔
# 19.4.15 增加 Flask-RESTful 获取url传参
# 19.4.15 增加 Flask-RESTful 获取参数时默认值选项
# 19.4.16 增加 SQLAlchemy翻页查询
正文
Flask-RESTful 获取url传参
这里的url参数分为
api/1 # url中捕捉参数
和
api?aa=bb&cc=dd # 正经的get传参(一key一v)
第一种在路径中加入变量在我之前的博客中有写
因其直接写在url中因此要在路由匹配部分捕捉
commodity_api.add_resource(CommodityClassify, '/commodityclassify/<int:classify_id>', endpoint='commodityclassify')
如上的路由会匹配所有 /commodiyclassify/数字 的url并将该数字传给 CommodityClassify 类,注意的是该类需要接受参数
class CommodityClassify(Resource): # 商品分类相关 def get(self, classify_id=None): pass
第二种是在 url后传参,我们只需要在在接收时指定取值范围即可
跟上一篇中的获取 body/form 的数据差不多
parser = reqparse.RequestParser() # 生成parser parser.add_argument('name', type=str, help='name error', required=True, location='args') # 获取form中的name字段,不传报错 parser.add_argument('pwd', type=str, help='pwd error', required=True, location='args') # pwd args = parser.parse_args(strict=True) # 获取值,如传多余字段报错
RESTFul获取值时默认值
比如我们在需要带翻页的接口时,我们通常给 page page_size 设立默认值(比如page不传默认1)
那么在RESTFul中怎么设置呢?
看 DEMO
parser = reqparse.RequestParser() # 生成parser parser.add_argument('commodityclassify_id', type=int, help='commodityclassify_id error', required=True, location='args') # 获取get传参的commodityclassify_id parser.add_argument('page', type=int, default=1, help='page error', location='args') # 页数(默认1) args = parser.parse_args(strict=True) # 获取值,如传多余字段报错
值得注意的是,如果你开启了 required(严格模式) 就不会走到默认值这一步,因为检测到你没有传送 指定值 就直接返回报错
SQLAlchemy翻页查询
当我们遇到量大的数据时,通常需要分页来保障json的大小
SQLAlchemy分页与sql类似
pass

更多精彩