#前言
前几天在项目开发过程中,发现用Flask写一些轻量级的Web程序是合适的。事实上,在Flask系列中,为了更方便地开发Restful风格的接口,Flask-
Restful是个不错的选择。虽然Flask-restful提供了完整的官方文档,但是开发在线项目还是不太方便,所以我写了一个Flask-
restful的快速模板。
本项目采用Mysql作为持久层数据库,实现一个资源的五个接口,满足基本的web开发需求。
#项目地址
首先给出项目地址:flag-restful-quick-start。
image-20211113211211982.png
#项目介绍
#首先是项目的文件结构。
烧瓶_app 常见 __init__。pyutils . py用户 __init__。py模型. py 视图. py __init__。pyconfig.pylicensemain.py需求
在项目中,使用蓝图划分功能块,方便了项目模块的划分,提高了可维护性。
目前我认为这是一个比较科学的文档组织方案。
# Restful界面设计
的基本接口从两条路由接收。
================================请求方法路由请求内容post/user list user info get/user list none get/user useridput/user usersinfodelete/user userid=
简单的介绍就是添加资源,从资源列表界面查询所有资源。
其他区域参数的请求、修改和删除来自特殊资源接口。
通过这种方式,可以避免获取带参数和不带参数的请求的问题。
#项目中的统一处理可以提高可靠性,减少编码错误。这里我统一了两点。
1.Sqlalchemy的模型层对象和dict之间的转换。
第2行dict(行): ' ' '参考文档https://stackoverflow.com/questions/1958219/Convert-sqlalchemy-row-object-to-python-dict将模型转换为dict:参数行: sqlalchemy模型:返回3360输出字典' ' out_dict={}用于第行的列。_ _ table _ _ _ . columns 3360 out_dict[column.name]=str(getattr(row,column . name))返回out _ dict
有了上面的代码,模型可以很容易地转换成dict的字典。
2.统一回复内容
class base response : def _ _ init _ _(self): self . result _ code _ success=200 self . result _ code _ fail=201 def success(self,msg='success ',data={ }): result={ ' code ' : self . result _ code _ success,' message': msg,' data ' 3: data } return jsonify(result)def fail(self,msg='fail ',data={ })333366
统一回复内容包括“成功”和“失败”,回复代码和内容可以自定义。
#启动项目
#安装
先克隆这个项目。
$ git clone git @ github.com : jarrettlo/flask-restful-quick-start . git CD flask-restful-quick-start
建议您使用ide创建一个虚拟环境venv,以避免项目使用的包和系统包之间的不一致。
$ pip安装要求. txt
最后,启动项目,开始开发。
$ python run main.py
#修改配置
在项目的init.py中,设置了连接到数据库的各种参数,这些参数需要定制。
用户=' root '密码=' 123456 '数据库=' flag _ quick' #要修改的内容app . config[' sqlalchemy _ database _ uri ']=' MySQL 3360/% s 3360% s @ localhost 33603306/% s ' %(
这里使用的是MysqlDB,可以根据实际情况进行修改。
同时,强烈建议您将这些设置信息放在config.py文件中,以便统一修改。
在主程序中,防止了数据库初始化方法,并且可以清空和创建数据库。
Def init_db(): #删除所有表db.drop_all() #创建所有表db.create_all()
#快速发展
要添加模块,您只需要复制现有的用户模块,并在以后修改它。
在flag _ app中注册蓝图。___ init.py。
从flask_app.user导入user _ blueprintapp.register _蓝图(user _蓝图,url_prefix='/user ')
将蓝图添加到flag _ app.user. ___ init.py。
来自flask_app.user导入视图的user _蓝图=蓝图(' user _蓝图',__name__,url_prefix='/user ')
享受吧.
#结束
更多信息请参考Flask_restful官方文件。
如果您认为以上内容对您有帮助,请喜欢、评论并转发!
更多信息请参考作者博客:https://jiaruiblog.com。
或者明星作者github : https://github.com/Jarrettluo?标签=存储库