# novel-flask
**Repository Path**: it-man-is-developing/novel-flask
## Basic Information
- **Project Name**: novel-flask
- **Description**: 使用flask开发的小说网站
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 7
- **Created**: 2023-11-06
- **Last Updated**: 2023-11-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
本项目仅用于学习和交流
基于/使用/参考的项目
## 项目介绍
novel-flask,是一个使用Pear Admin Flask作为管理后台,使用Flask仿照/基于优秀项目“小说精品屋”开发的项目
## 截图
















## 项目结构
```
novel-flask
├── apps -- 所有应用目录,包括前台front应用和后台admin应用
├── docs -- 存放了一些文档/笔记/sql脚本
├── plugins -- 项目用到的插件
├── pub -- 项目公共模块,主要提供一些常量、工具脚本,以及各个app公用的配置、扩展(数据库、邮件、文件上传工具等的初始化/配置)、模型类等
└── manage_admin.py -- 后台app启动脚本
└── manage_front.py -- 前台app启动脚本
```
## app结构(以前台front app为例)
```
front
├── exts -- 初始化项目用到的扩展,例如jwt等
├── service -- 由于views层各个模块(蓝图)之间、本模块之内,存在大量可复用代码/逻辑,因此增加了一个service层,可近似看作是javaweb的service层
├── static -- 存放css、js等静态资源的地方
├── templates -- 存放html页面的地方
└── views -- 视图函数
├── __init__.py -- app初始化脚本,所有扩展均在此初始化、引入
└── app.py -- app启动脚本,也可使用项目根目录下的manage_front.py脚本启动
└── config.py -- 前台app配置脚本
```
## 技术选型
| 技术 | 说明 |
|--------------------|-----------------------------------------------------------------------------------------|
| Flask | 小而美的python web框架 |
| MySQL | 数据库服务 |
| pymysql | 数据库连接 |
| Flask SQLAlchemy | ORM框架,可提供多数据源支持 |
| Redis | 缓存中间件 |
| flask-siwadoc | swagger api文档 |
| Flask-JWT-Extended | 提供前台登录支持 |
| Flask-Login | 提供后台登录支持 |
| Flask-Upload | 文件上传 |
| Jinja2 | 模板引擎 |
| marshmallow | 序列化工具(用于模型类的序列化、反序列化,便于Redis存取、与前端交互) |
| jsonpickle | 序列化工具(本项目主要用于进程间、网络传输时的序列化、反序列化) |
| nltk | 字符处理统计 |
| alipay | 阿里支付SDK |
| Layui | 前端 UI 框架 |
| Flask sqlacodegen | 数据库逆向工程,用于根据已有数据库表反向生成模型类(项目中已剔除,由于其使用sqlacodegen,而sqlacodegen使用的SQLAlchemy远低于本项目使用的版本) |
## 运行方法
1.安装好MySQL(8.x)、Redis(windows平台 3.2.100)、python(3.7.3,如果版本>=3.9,删掉requirements.txt里面的backports.zoneinfo==0.2.1;python_version<"3.9"
,或者将;python_version<"3.9"去掉)
2.(1)将docs/sqls下的2个数据库建好,然后执行脚本创建表和添加数据
(2)全量数据到仓库novel-flask-data获取
通过命令或通过pycharm图形界面建立虚拟环境
(3)执行 pip install -r requirements.txt
3.修改配置:pub/config.py,需修改以下项:
BaseConfig:
(1)UPLOADED_PHOTOS_DEST
(2)REDIS相关配置
(3)MYSQL相关配置
(4)SQLALCHEMY_BINDS(把两个数据库的数据源写进去,也可以只写一个,因为另一个作为默认的数据库连接,已经在SQLALCHEMY_DATABASE_URI配好)
4.修改配置:apps/front/config.py,按需修改,可以不修改
5.修改配置:apps/admin/config.py,按需修改,可以不修改
6.运行:
(1)启动后台:运行manage_admin.py
测试账号:admin/111111
(2)启动前台:运行manage_front.py
测试账号:
17816600001/111111
17816600002/111111
17816610001/111111
17816610002/111111