图书信息管理系统代码网站建设,论坛企业推广,网络营销的功能是什么?,电商工资多少钱一个月关于我 编程界的一名小小程序猿#xff0c;目前在一个创业团队任team lead#xff0c;技术栈涉及Android、Python、Java和Go#xff0c;这个也是我们团队的主要技术栈。 Github#xff1a;github.com/hylinux1024 微信公众号#xff1a;angrycode 前面对Python WEB框架Fla… 关于我 编程界的一名小小程序猿目前在一个创业团队任team lead技术栈涉及Android、Python、Java和Go这个也是我们团队的主要技术栈。 Githubgithub.com/hylinux1024 微信公众号angrycode 前面对Python WEB框架Flask的源码进行走读对服务的启动流程、路由原理和模板渲染有了一个宏观的认识。不过说了那么多理论接下来就利用Flask开发一个企业级的API应用。 我选用团队最近开发的一个企业应用作为案例。这是一个恋爱交友应用本来是使用Java的SpringBoot框架进行开发的不过为了避免不必要的麻烦我会使用Flask进行改造当然这个案例我还会精简一下保持核心业务的同时重点关注其中涉及到的技术和工具库的使用最大限度的还原项目开发的完整流程。 0x00 技术栈 这里我们使用Python版本为3.7WEB框架当然就是Flask数据库使用MySqlORM使用SqlAlchemy使用Redis作为缓存可能还会使用到序列化工具库marshmallow。 开发环境使用venv部署服务环境会使用nginxgunicornsupervisord 因此整个技术栈为 # 开发技术栈
Python3.7venvFlaskMySqlSqlAlchemyRedismarshmallow
# 部署技术栈
Python3.7venvnginxgunicornsupervisord
复制代码当然企业实际开发中还需要编写接口文档用于各端同学的交互。我们可以使用postman或者淘宝的API文档服务。 0x01 项目设计 技术选型做好之后先不急于写代码而是先把项目前期的设计做好根据业务需求理清功能模块、数据库表结构、接口文档等。 我们的需求是做一个恋爱交友的应用那么它主要功能模块就应该有 登录注册 这里使用用户手机号进行登录注册用户列表 用户登录后可以查看当前热门推荐的用户联系人列表 联系过的用户会出现在联系人列表中聊天模块 给用户发送消息消息类型包括文本、语音等附近的人 根据用户登录的地理位置查看附近的人谁看过我 查看谁看过我这个可以作为VIP功能个人信息 包括用户基本信息、用户相册和用户标签等VIP模块 当用户充值为VIP后可以解锁一些功能比如查看谁看过我的列表等注意为了避免项目开发周期过长我们主要关注前台api的开发对于后台管理功能暂时不考虑。 根据这些功能模块我们对项目中的实体进行抽象主要有 登录授权user_auth用户基本信息user_info用户位置location用户相册user_album用户标签user_label标签label联系人contacts消息message访问足迹visitor充值VIP的商品product 有月度VIP、季度VIP和年度VIP三种订单user_order用户VIP信息vip_info这些实体在数据库建模中分别对应各自的表。避免代码篇幅太长这里就不再贴出各表脚本代码。关于sql表结构会在后面的项目地址中给出。 0x02 数据库 我这里使用的是腾讯云的数据库当然使用本地的数据库也是可以的。 各表的字段如下图 注意这些表我都没有加外键约束。 0x03 项目框架搭建 我使用PyCharm作为开发环境的IDE创建了一个名为DatingToday项目结构如下 (venv) ➜ DatingToday tree -L 1
.
├── app.py
├── datingtoday.sql
├── requirements.txt
├── static
├── templates
└── venv
复制代码注意到我已经把数据库脚本文件放在项目根目录了。venv环境安装了以下依赖库 (venv) ➜ DatingToday pip list
Package Version
---------------------- -------
Click 7.0
Flask 1.1.1
flask-marshmallow 0.10.1
Flask-SQLAlchemy 2.4.0
itsdangerous 1.1.0
Jinja2 2.10.1
MarkupSafe 1.1.1
marshmallow 2.19.5
marshmallow-sqlalchemy 0.17.0
pip 10.0.1
setuptools 39.1.0
six 1.12.0
SQLAlchemy 1.3.6
Werkzeug 0.15.5
复制代码可以使用命令 (venv) ➜ pip freeze requirements.txt
复制代码生成requirements.tx文件。 使用命令 (venv) ➜ pip install -r requirements.txt
复制代码还原虚拟环境中的依赖。 0x04 总结 本篇是基于Flask开发企业级API应用的第一篇主要是对项目开发前期的准备工作包括项目设计、数据库设计以及项目结构搭建当然实际工作中可能还会先出API文档让前端的同学可以先动起来但我这里因为已经是在写文档了所以API文档就省略了。磨刀不误砍柴工这些工作都是必需的。 0x05 项目地址 github.com/hylinux1024… 0x06 学习资料 palletsprojects.com/p/flask/realpython.com/flask-conne…转载于:https://juejin.im/post/5d3bc3d25188254cbc32b1cc