我写了一个Flask-restful的快速模板

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

前言

前几天在进行项目开发的时候,发现用Flask写一些轻量化的Web程序还是比较合适的。其实在Flask家族中,为了能够更加方便的开发Restful风格的接口,Flask-restful是一个不错的选择。虽然Flask-restful提供了比较完整的官方文档,但是距离开发上线项目还是不是很方便,因此我写了一个Flask-restful的快速模板。

此项目采用Mysql作为持久层数据库,实现了一个资源的5个接口,满足基本的web开发需求。

项目地址

首先给出项目源码地址:Flask-restful-quick-start

Github地址

项目简介

首先是项目的文件结构。
├── 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 = {
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳瑞Jarrett

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值