## ✨ 亮点
- 基于原生的 Flask 构建 RESTful API
- 更灵活的 API文档生成方式(可带 **Token**)
- AOP(面向切面编程)设计,实现 **参数校验层** & **异常统一处理层**
- Ubuntu 16.04上 Nginx + Gunicorn + Pipenv部署
## 🔩 内置
1. 用户管理:提供用户的相关配置
2. 权限组(角色)管理:接口权限分配和菜单权限分配
3. 菜单管理:实现后端配置菜单动态路由,支持多级菜单
4. 字典管理:维护系统中经常使用的字典数据,如:性别,状态
5. 参数管理:系统动态配置常用参数,如:分页数,前端主题色等
6. 通知管理:系统通知&公告信息的发布维护
7. 日志管理:操作日志和登录日志
8. 接口文档:根据业务代码自动生成相关的api接口文档(Swagger风格)
9. 错误码:前后端开发的错误码的约定
10. 文件管理和上传:文件夹和文件的管理
11. 文章管理
## 目录
- [亮点](#亮点)
- [开发工具](#开发工具)
- [开发环境搭建](#开发环境搭建)
- [服务器部署](#服务器部署)
- [本地&线上同步推进](#本地&线上同步推进):针对个人项目
- [上传&下载](#上传&下载)
- [骚操作](#骚操作)
- [三端分离](#三端分离): 后续
- [Nginx 部署](#nginx部署)
- [Python 学习路线](#Python学习路线)
## 开发工具
* Python 3.6(虚拟环境:pipenv)
* MySQL
* PyCharm(开发工具)
* Navicat(数据库可视化管理工具)
## 开发环境搭建
* MySQL安装、运行,数据库的导入
* Python 3.6
### MySQL的安装和数据导入
#### 一、安装
```
$ sudo apt-get install mysql-server
```
安装过程中,会让你输入密码。<br>
请务必记住密码!<br>
务必记住密码!<br>
记住密码!<br>
查看是否安装成功
```$ sudo netstat -tap | grep mysql```
#### 二、运行
```
$ mysql -u root -p # 执行完毕后输入密码
$ mysql -u root -p123456 # 直接输入密码,进入(我的密码是: 123456)
```
**`-u`** 表示选择登陆的用户名, **`-p`** 表示登陆的用户密码<br>
上面命令输入之后,会提示输入密码(Enter password)
#### 三、导入
下载 MySQL数据 [SQL文件](https://server.mini-shop.ivinetrue.com/static/files/zerd.sql)
> mysql的每条执行以「分号」结尾
```
mysql> create database zerd; # 建立数据库(zerd)
mysql> use zerd; # 进入该数据库
mysql> source /home/ubuntu/mini-shop-server/zerd.sql; # 导入「mini-shop-server」目录下的sql文件
```
> Tips: 其他数据库操作<br>
```
// 1. 获取存在的所有表
show tables;
// 2. 导入成功,可以直接查询(user表)
mysql> select * from user;
// 3. 删除数据库(zerd库)
mysql> drop database zerd;
// 4. 导出数据库
mysql>
```
### Python3.6版本的安装
查询本地的python3的版本 ```$ python3 --version```
如果不是python3.6的版本,则如下操作
```
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:jonathonf/python-3.6
$ sudo apt-get install python3.6
```
### pipenv的安装
如果还未安装pip3包管理工具,请先执行如下语句<br>
```$ sudo apt install python3-pip```
安装 pipenv<br>
```$ pip3 install pipenv```
> Tips: 其他 pipenv操作
```
$ pipenv install flask # 安装指定模块,并写入到 Pipfile中
$ pipenv install flask==1.0.2 # 安装指定版本的模块
$ pipenv uninstall flask # 卸载指定模块
$ pipenv update flask # 更新指定模块
$ pip list # 查看安装列表
$ pipenv graph # 查看安装列表,及其相应的以来
$ pipenv --venv # 虚拟环境信息
$ pipenv --py # Python解释器信息
$ pipenv --rm # 卸载当前虚拟环境
$ exit # 退出当前虚拟环境
```
### 本地启动
```
$ git clone https://github.com/Allen7D/mini-shop-server.git
$ cd mini-shop-server
$ mkdir .venv # 生成.venv文件夹,用于存放该项目的python解释器(包括后续所有安装的包依赖)
$ pipenv --python 3.6 # 指定某 Python 版本创建环境
$ pipenv shell # 激活虚拟环境 or 如果没有虚拟环境,则构建新的(默认版本)
$ pipenv install # 安装包依赖
$ python server.py run # 启动方式1:默认5000端口
$ python server.py run -p 8080 # 启动方式2:改为8080端口
$ python server.py run -h 0.0.0.0 -p 8080 # 启动方式3:以本地IP地址访问
```
### 生成临时管理员信息
```$ python fake.py```
### Pycharm的配置<sup>[[1]](#ref_1)</sup>
Pycharm中 配置 Pipenv生成的虚拟环境,并使用 **`指定端口`** 开启「Debug模式」
1. 获取该虚拟环境下 Python的解释器的路径
<div align="center">
<img alt="img" src="./media/python_interpreter.jpg" width="80%">
</div>
2. 配置指定端口号
**`Run > Edit Configurations`** <br>
写入 `run -h 0.0.0.0 8080` <br>
等同于,在终端执行 `python server.py run -h 0.0.0.0 -p 8080`
<div align="center">
<img alt="img" src="./media/debug_configurations.jpg" width="80%">
</div>
3. 开启 Debug
**`Run > Debug 'server'`**
## 目录结构
<details>
<summary>展开查看</summary>
<pre><code>
.
├── app
│ ├── __init__.py
│ ├── api
│ │ ├── v1 # v1的API接口
│ │ │ ├── __init__.py
│ │ │ ├── address.py # 用户地址
│ │ │ ├── banner.py # 推广横幅
│ │ │ ├── category.py # 分类
│ │ │ ├── client.py
│ │ │ ├── order.py # 订单
│ │ │ ├── pay.py # 支付
│ │ │ ├── product.py # 产品
│ │ │ ├── theme.py # 主题
│ │ │ ├── token.py # 令牌
│ │ │ └── user.py # 用户
│ │ └── v2 # v2的API接口
│ │ ├── __init__.py
│ │ └── file.py # 文件上传
│ ├── api_docs # 对应的 API文档
│ ├── config # 配置文件
│ │ ├── secure.py
│ │ ├── setting.py
│ │ └── wx.py
│ ├── libs # 自己的库
│ │ ├── enums.py
│ │ ├── error.py
│ │ ├── error_code.py
│ │ ├── httper.py
│ │ ├── limiter.py
│ │ ├── redprint.py
│ │ ├── scope.py
│ │ ├── swagger_filed.py
│ │ ├── token_auth.py
│ │ └── utils.py
│ ├── models # Model 层
│ ├── service # Service 层
│ │ ├── __init__.py
│ │ ├── app_token.py
│ │ ├── order.py
│ │ ├── pay.py
│ │ ├── token.py
│ │ └── wx_token.py
│ ├── validators # 参数校验层
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── forms.py
│ │ └── params.py
│ ├── web # 网页文件
│ │ ├── __init__.py
│ │ └── auth.py
│ └── app.py
├── fake.py # 生成临时用户
├── server.py # 启动程序(项目入口)
├── config.ini
├── Pipfile # 包依赖文件
├── code.md # 错误码(用于前后端开发)
├── README.md # 项目说明文档
├── zerd.sql
└── LICENSE
</code></pre>
</details>
### 开发思路
业务逻辑主要放在 Model 层
<div align="center">
<img alt="img" src="./media/arch.png" width="700px">
<p>项目架构体系</p>
</div>
### 业务逻辑分成
DAO层(数据访问层),全称为data access object
<br>属于一种比较底层,比较基础的操作,对于数据库的操作,具体到对于某个表的增删改查。
<br>DAO一定是和数据库的某一张表一
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于python Flask 框架开发的微信小程序后端项目,基于原生的 Flask 构建 RESTful API 更灵活的 API文档生成方式(可带 Token) AOP(面向切面编程)设计,实现 参数校验层 & 异常统一处理层 Ubuntu 16.04上 Nginx + Gunicorn + Pipenv部署 功能: 用户管理:提供用户的相关配置 权限组(角色)管理:接口权限分配和菜单权限分配 菜单管理:实现后端配置菜单动态路由,支持多级菜单 字典管理:维护系统中经常使用的字典数据,如:性别,状态 参数管理:系统动态配置常用参数,如:分页数,前端主题色等 通知管理:系统通知&公告信息的发布维护 日志管理:操作日志和登录日志 接口文档:根据业务代码自动生成相关的api接口文档(Swagger风格) 错误码:前后端开发的错误码的约定 文件管理和上传:文件夹和文件的管理 文章管理 开发工具 Python 3.6(虚拟环境:pipenv) MySQL PyCharm(开发工具) Navicat(数据库可视化管理工具) 开发环境搭建 MySQL安装、运行,数据库的导入 Python 3.6
资源推荐
资源详情
资源评论
收起资源包目录
基于python Flask 框架开发的微信小程序后端项目,用于构建小程序商城后台 (257个子文件)
index.css 443B
Python面向对象编程指南.epub 792KB
.gitignore 285B
index.html 1KB
error_code.html 532B
layout.html 431B
config.ini 369B
debug_configurations.jpg 257KB
wechat_pay.jpg 182KB
ali_pay.jpg 113KB
qq_group_qr_code.jpg 84KB
python_interpreter.jpg 81KB
token.json 211B
README.md 13KB
code.md 887B
example.pdf 992KB
招股说明书_error.pdf 97KB
招股说明书_previous.pdf 96KB
Pipfile 534B
wechat_pay_process.png 622KB
env_var.png 278KB
detail-11@1-dryfruit.png 106KB
banner-2a.png 105KB
banner-3a.png 97KB
detail-13@1-dryfruit.png 93KB
detail-10@1-dryfruit.png 76KB
detail-4@1-dryfruit.png 76KB
detail-6@1-dryfruit.png 69KB
detail-5@1-dryfruit.png 66KB
2@theme-head.png 61KB
banner-4a.png 54KB
detail-8@1-dryfruit.png 50KB
3@theme.png 48KB
detail-2@1-dryfruit.png 47KB
detail-3@1-dryfruit.png 47KB
navicat_new_database.png 46KB
1@theme-head.png 45KB
product-rice@2.png 44KB
product-fry@3.png 40KB
detail-9@1-dryfruit.png 40KB
product-fry@2.png 39KB
category-rice.png 38KB
product-cake@2.png 38KB
product-rice@3.png 37KB
product-fry@5.png 37KB
product-rice@4.png 37KB
product-rice@7.png 37KB
product-vg@5.png 35KB
product-rice@6.png 35KB
product-cake@1.png 35KB
product-rice@1.png 35KB
product-vg@2.png 35KB
product-fry@1.png 35KB
product-dryfruit@4.png 35KB
product-fry@4.png 34KB
product-dryfruit@5.png 33KB
product-cake-a@3.png 33KB
banner-1a.png 32KB
product-dryfruit@2.png 32KB
product-dryfruit@7.png 31KB
product-tea@2.png 31KB
product-vg@1.png 31KB
category-cake.png 30KB
product-dryfruit-a@6.png 29KB
2@theme.png 29KB
detail-12@1-dryfruit.png 28KB
product-dryfruit@8.png 28KB
product-dryfruit@3.png 27KB
product-tea@3.png 26KB
category-tea.png 26KB
product-cake-a@4.png 26KB
product-vg@4.png 26KB
product-vg@3.png 25KB
category-dryfruit.png 24KB
product-tea@1.png 23KB
category-vg.png 23KB
product-dryfruit@1.png 23KB
1@theme.png 22KB
category-fry-a.png 21KB
product-rice@5.png 20KB
arch.png 19KB
detail-1@1-dryfruit.png 16KB
detail-7@1-dryfruit.png 14KB
qq_group_from_lin.png 7KB
forms.py 16KB
swagger_filed.py 12KB
db.py 10KB
order.py 8KB
global_args.py 8KB
user.py 6KB
file.py 6KB
logger.py 5KB
login_verify.py 5KB
file.py 5KB
token_auth.py 5KB
utils.py 4KB
route.py 4KB
error.py 4KB
redprint.py 4KB
__init__.py 3KB
共 257 条
- 1
- 2
- 3
资源评论
白话机器学习
- 粉丝: 8173
- 资源: 7687
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功