前言
前几天在进行项目开发的时候,发现用Flask写一些轻量化的Web程序还是比较合适的。其实在Flask家族中,为了能够更加方便的开发Restful风格的接口,Flask-restful是一个不错的选择。虽然Flask-restful提供了比较完整的官方文档,但是距离开发上线项目还是不是很方便,因此我写了一个Flask-restful的快速模板。
此项目采用Mysql作为持久层数据库,实现了一个资源的5个接口,满足基本的web开发需求。
项目地址
首先给出项目源码地址:Flask-restful-quick-start

项目简介
首先是项目的文件结构。
├── flask_app
│ ├── common
│ │ ├── __init__.py
│ │ └── utils.py
│ ├── user
│ │ ├── __init__.py
│ │ ├── models.py
│ │ └── views.py
│ └── __init__.py
├── config.py
├── LICENSE
├── main.py
└── requirements.txt
项目中采用了蓝图来划分功能块,方面划分项目模块,并且提升可维护性。
目前我认为这是一个相对比较科学的文件组织方案了。
Restful接口设计
基本的接口从两个路由进行接收
======================================
请求方法 路由 请求内容
POST /userList userInfo
GET /userList None
GET /user userId
PUT /user userInfo
DELETE /user userId
======================================
做一个简单的介绍就是增加资源和查询全部资源从资源列表接口走。
其他的带参数请求和修改、删除等从专门的资源接口走。
这样就能避免GET请求带参数和不带参数的问题了。
在项目中统一的处理能够提升可靠性,降低编码错误,我这里对两点进行了统一。
1、Sqlalchemy的Model层对象和dict之间的转换。
def row2dict(row):
"""
参考文档 https://stackoverflow.com/questions/1958219/convert-sqlalchemy-row-object-to-python-dict
将model转换为dict
:param row: Sqlalchemy model
:return: 输出的字典
"""
out_dict = {

本文介绍了如何利用Flask-RESTful构建轻量级Web服务,提供了一个包含用户资源管理的快速启动模板。项目采用Mysql数据库,实现了增删查改接口,并通过蓝图进行模块划分,提高了代码的可维护性。文中还分享了将SQLAlchemy Model转换为dict的方法以及统一的响应内容类,简化了开发过程。项目结构清晰,适合作为Flask-RESTful入门实践。
最低0.47元/天 解锁文章
671

被折叠的 条评论
为什么被折叠?



