<a href="#%E7%9B%AE%E5%BD%95">目录</a>
<a href="#%E5%89%8D%E6%96%87%E5%88%97%E8%A1%A8">前文列表</a>
<a href="#%E5%BA%94%E7%94%A8%E8%AF%B7%E6%B1%82%E4%B8%AD%E7%9A%84%E5%8F%82%E6%95%B0%E5%AE%9E%E7%8E%B0-api-%E5%88%86%E9%A1%B5">应用请求中的参数实现 API 分页</a>
<a href="#%E6%B5%8B%E8%AF%95">测试</a>
<a href="http://blog.csdn.net/jmilk/article/details/53150084">用 Flask 来写个轻博客 (1) — 创建项目</a>
<a href="http://blog.csdn.net/jmilk/article/details/53152158">用 Flask 来写个轻博客 (2) — Hello World!</a>
<a href="http://blog.csdn.net/jmilk/article/details/53153382">用 Flask 来写个轻博客 (3) — (M)VC_连接 MySQL 和 SQLAlchemy</a>
<a href="http://blog.csdn.net/jmilk/article/details/53184903">用 Flask 来写个轻博客 (4) — (M)VC_创建数据模型和表</a>
<a href="http://blog.csdn.net/jmilk/article/details/53187575">用 Flask 来写个轻博客 (5) — (M)VC_SQLAlchemy 的 CRUD 详解</a>
<a href="http://blog.csdn.net/jmilk/article/details/53229180">用 Flask 来写个轻博客 (6) — (M)VC_models 的关系(one to many)</a>
<a href="http://blog.csdn.net/jmilk/article/details/53239740">用 Flask 来写个轻博客 (7) — (M)VC_models 的关系(many to many)</a>
<a href="http://blog.csdn.net/jmilk/article/details/53241361">用 Flask 来写个轻博客 (8) — (M)VC_Alembic 管理数据库结构的升级和降级</a>
<a href="http://blog.csdn.net/jmilk/article/details/53264049">用 Flask 来写个轻博客 (9) — M(V)C_Jinja 语法基础快速概览</a>
<a href="http://blog.csdn.net/jmilk/article/details/53292248">用 Flask 来写个轻博客 (10) — M(V)C_Jinja 常用过滤器与 Flask 特殊变量及方法</a>
<a href="http://blog.csdn.net/jmilk/article/details/53303870">用 Flask 来写个轻博客 (11) — M(V)C_创建视图函数</a>
<a href="http://blog.csdn.net/jmilk/article/details/53306560">用 Flask 来写个轻博客 (12) — M(V)C_编写和继承 Jinja 模板</a>
<a href="http://blog.csdn.net/jmilk/article/details/53321939">用 Flask 来写个轻博客 (13) — M(V)C_WTForms 服务端表单检验</a>
<a href="http://blog.csdn.net/jmilk/article/details/53327164">用 Flask 来写个轻博客 (14) — M(V)C_实现项目首页的模板</a>
<a href="http://blog.csdn.net/jmilk/article/details/53332204">用 Flask 来写个轻博客 (15) — M(V)C_实现博文页面评论表单</a>
<a href="http://blog.csdn.net/jmilk/article/details/53342517">用 Flask 来写个轻博客 (16) — MV(C)_Flask Blueprint 蓝图</a>
<a href="http://blog.csdn.net/jmilk/article/details/53352359">用 Flask 来写个轻博客 (17) — MV(C)_应用蓝图来重构项目</a>
<a href="http://blog.csdn.net/jmilk/article/details/53363109">用 Flask 来写个轻博客 (18) — 使用工厂模式来生成应用对象</a>
<a href="http://blog.csdn.net/jmilk/article/details/53365714">用 Flask 来写个轻博客 (19) — 以 Bcrypt 密文存储账户信息与实现用户登陆表单</a>
<a href="http://blog.csdn.net/jmilk/article/details/53368626">用 Flask 来写个轻博客 (20) — 实现注册表单与应用 reCAPTCHA 来实现验证码</a>
<a href="http://blog.csdn.net/jmilk/article/details/53385381">用 Flask 来写个轻博客 (21) — 结合 reCAPTCHA 验证码实现用户注册与登录</a>
<a href="http://blog.csdn.net/jmilk/article/details/53445271">用 Flask 来写个轻博客 (22) — 实现博客文章的添加和编辑页面</a>
<a href="http://blog.csdn.net/jmilk/article/details/53448906">用 Flask 来写个轻博客 (23) — 应用 OAuth 来实现 Facebook 第三方登录</a>
<a href="http://blog.csdn.net/jmilk/article/details/53539710">用 Flask 来写个轻博客 (24) — 使用 Flask-Login 来保护应用安全</a>
<a href="http://blog.csdn.net/jmilk/article/details/53542686">用 Flask 来写个轻博客 (25) — 使用 Flask-Principal 实现角色权限功能</a>
<a href="http://blog.csdn.net/jmilk/article/details/53677411">用 Flask 来写个轻博客 (26) — 使用 Flask-Celery-Helper 实现异步任务</a>
<a href="http://blog.csdn.net/jmilk/article/details/53741676">用 Flask 来写个轻博客 (27) — 使用 Flask-Cache 实现网页缓存加速</a>
<a href="http://blog.csdn.net/Jmilk/article/details/53782360">用 Flask 来写个轻博客 (29) — 使用 Flask-Admin 实现后台管理 SQLAlchemy</a>
<a href="http://blog.csdn.net/jmilk/article/details/53782865">用 Flask 来写个轻博客 (30) — 使用 Flask-Admin 增强文章管理功能</a>
<a href="http://blog.csdn.net/jmilk/article/details/53970235">用 Flask 来写个轻博客 (31) — 使用 Flask-Admin 实现 FileSystem 管理</a>
<a href="http://blog.csdn.net/Jmilk/article/details/53973314">用 Flask 来写个轻博客 (32) — 使用 Flask-RESTful 来构建 RESTful API 之一</a>
<a href="http://blog.csdn.net/Jmilk/article/details/53979349">用 Flask 来写个轻博客 (33) — 使用 Flask-RESTful 来构建 RESTful API 之二</a>
API 也需要实现分页功能, 以此降低 API 对数据库的压力.
Flask-RESTful 提供了一种叫做解析器的功能, 用于查找和解析请求中所携带的参数. 而且还可以规定必备的参数和类型.
实现解析器模块
vim jmilkfansblog/controllers/flask_restful/parsers.py
NOTE 1: 命名规则为 <code>resourceName_functionName_parser</code>
NOTE 2: add_argument() 函数的参数列表:
(1). <code>page</code> 定义参数名称
(2). <code>type=int</code> 定义参数类型
(3). <code>location=['json', 'args', 'headers']</code> 搜索参数的位置列表
(4). <code>required=False</code> 是否为必须的参数
除此之外, 还能够定义非常多的关键字参数, 具体请参照官方文档.
NOTE 3: 可以定义多个参数
应用自定义的解析器
直接应用到资源类的实例方法中
vim jmilkfansblog/controllers/flask_restful/posts.py
分页的原理在之前的博文中已经介绍过了, 这里不在重复.
NOTE 1: 这里实现了解析器 reqparse 从 URL 参数或者 HTTP Header 中找到 user/page 参数, 并返回对应的 Model 分页对象.
使用 curl 工具进行测试, 根据个人环境可能需要安装.
获取所有 posts
获取单一 post
传入正确的参数
传入错误的参数