一、背景
由于近期需要用python写一个小型的web项目,故大致对比了python目前比较流行的web开发框架,基于项目需要,选择了flask框架来实现工程功能。要实现的功能比较简单,具体如下:
- 定时从某个服务接口上查询数据,落库
- 基于库数据做聚合,发送邮件
- 额外,实现数据的界面化展示
当然以上功能比较简单,主要是github上没有找到对flask框架封装比较好的demo项目,因此在开发的时候,基于常见的web项目框架,对整体的目录结构进行了调整,以实现代码的模块化,复用性;提高开发效率。
二、框架结构
├─docs #文档文件
├─logs #日志文件
├─src #存储核心代码
│ ├─command #脚本文件
│ │ └─__pycache__
│ ├─components #通用组件,日志类、工具函数,返回类
│ │ └─__pycache__
│ ├─controllers #接口目录,逻辑很薄的一层
│ │ └─__pycache__
│ ├─models #db entity 定义
│ │ └─__pycache__
│ ├─routers # 路由配置
│ │ └─__pycache__
│ ├─services #业务逻辑层,实现详细的逻辑和代码复用,实现面向对象开发
│ │ └─__pycache__
│ ├─static #js/css文件
│ ├─templates #模板文件
│ └─__pycache__
├─tests #单元测试文件
├—pycache__
├─.gitignore #git仓库忽略文件
├─config.py #核心配置文件,db,log目录等
├─app.py #项目入口文件
├─LICENSE #项目开源许可证
└─README.md #项目描述文件
三、项目依赖
# flask framework
pip install flask
# db orm
pip install flask-sqlalchemy
# cross domain
pip install flask_cors
# command tool
pip install click
# mysql driver
pip install mysql-connector
# template engine
pip install Jinja2
四、github地址
https://github.com/HelloMrShu/flask_scheleton.git
欢迎有相关项目经验的小伙伴围观,留下宝贵意见。