# easy-flask-json-mvc-socketio
**Repository Path**: luodengxiong/flask
## Basic Information
- **Project Name**: easy-flask-json-mvc-socketio
- **Description**: 一个MVC 分层,restful api,json api设计模式的flask框架
- **Primary Language**: Python
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 190
- **Created**: 2020-04-19
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#### 项目介绍
一套基于flask,vue的前后端分离的解决方案(献给从事web开发的pythoner)。
人生苦短,我用python!
#### 更新情况
- [x] 2019.04.03 增加事务,验证装饰器,demo在UsersController下
- [x] 2019.05.30 增加全局异常日志记录及接口异常回溯描述返回
- [x] 2019.05.30 增加验证描述万国语言支持
- [x] 2019.07.08 模型一键生成,继承模型进行后封装增删改查通用方法,减少操作orm的难度
- [x] 2019.11.28 启动分类加载,减少不必要的损耗,默认使用文本日志,防止不用test.sql的人导致的插入报错
- [x] 2019.12.03 增加数据库插入等事件
- [x] 2019.12.12 增加计划任务
#### 特别提醒
1. 2019.07.08版本后将使用sqlalchemy而不是flask_sqlalchemy充当orm
2. 一键生成基础模型 sqlacodegen mysql+pymysql://root:1993524@127.0.0.1:3306/test > Model.py
#### 软件架构
一.后端flask程序:
Python 版本要求 3.7 ,使用其他版本可能出现错误
1.三个入口文件:
先在工程根目录下安装依赖库 pip install -r requirements.txt (有的依赖包可能因为版本问题而无法安装,需修改为匹配的版本号)
json api入口启动run.py
restful api入口启动 restfulRun.py
websocket入口启动 socketRun.py
2.运行流程
run.py->
app/__init__.py ->
app/Middleware/XSSProtection.py(抽象一层中间层用于处理一些统一验证的逻辑,根据需求进行添加)
app/Controllers/UsersController.py(接收前端json参数并分发给模型层处理,参考flask request模块接参方法)->
app/Models/Users.py(业务逻辑书写成静态方法或类方法给控制层调用)->
app/Controllers/UsersController.py(接收模型层返回值返回)
3. python 注意事项
jwt 要用 PyJWT,否则报错
出现的问题 Microsoft Visual C++ 14.0 is required解决方法,Microsoft Visual C++ Build Tools,下载:http://go.microsoft.com/fwlink/?LinkId=691126
openssl/opensslv.h错误,参考 https://blog.csdn.net/u012247418/article/details/82314129
python3.7新增关键字:async、await;带来和kafka-python==1.4.2的兼容性问题
python3.7新增关键字:async、await;
kafka-python==1.4.2用到了关键字async,由此带来兼容性问题
解决方案:
升级kafka-python==1.4.4
使用python3.6或以下版本
二.前端vue程序:
1.安装,运行,打包:
命令行打开到 F:\PycharmProjects\flask\app\Views\vue-mint,执行淘宝的 cnpm
采用webpack,vue,mint-ui技术的前端解决方案
cnpm install(建议使用淘宝源 cnpm install)
cnpm run dev(启动测试环境)
cnpm run build(打包成浏览器识别的语法)
2.一些重要的文件夹及文件:
路由层:src/router/index.js
视图层:src/views/*
组件层:src/components/*
api层:src/api/*
资源层:src/assets/*
仓储层(vuex):src/store/*
工具层:src/utils/*
3. 前端注意事项
Vue 安装node-sass提示没有vendor目录,在前端工程下执行 \app\Views\vue-mint> npm/cnpm rebuild node-sass --save-dev
需要用到 python2 ,Windows python 共存方案:https://www.cnblogs.com/imshome/p/8422311.html
#### 作者其他开源产品
1. 工具鸡前端app项目
2. 状态栏监听安卓客户端
3. plainCms
4. 工具鸡-聊天室
#### 群内交流

#### 捐助作者
