<h1 align="center">
mini-shop-server
</h1>
<h4 align="center">
构建微信小程序(商城)后端
<br>🤜基于 Flask 框架🤛
</h4>
<div align="center">
<img alt="img" src="https://ws1.sinaimg.cn/large/006tNbRwly1fx19fcgb2pg308w099kjl.gif" width="550px">
<div>
<a href="http://server.mini-shop.ivinetrue.com/apidocs/#/" target="__blank">线上 API 文档</a>
</div>
</div>
* 借鉴慕课网的[《Python Flask 构建可扩展的 RESTful API》](http://coding.imooc.com/class/220.html)的设计模式
* 重构慕课网的[《微信小程序商城构建全栈应用》](https://coding.imooc.com/learn/list/97.html),源项目基于TP5 + MINA框架
* 本项目的开发环境是 Mac OS,生产环境是 Linux Ubuntu 16.04
* 感谢慕课网的[七月老师](https://www.imooc.com/t/4294850),本项目属于他课程思路的复现
* QQ 交流群 163801325(聊天、斗图、学习、交流,伸手党勿进),欢迎入群一同讨论
<div align="center">
<img alt="img" src="./media/qq_group_qr_code.jpg" width="250px">
<div>👆QQ 扫码 👆</div>
</div>
## 亮点
- [自动激活](#auto_active)虚拟环境(autoenv)
- [装饰器的扩展](#extend_decorator)(对第三方库)
- 基于原生的 Flask 构建 RESTfull API
- 更灵活的 API文档生成方式(可带 **Token**)
- AOP(面向切面编程)设计,实现 **参数校验层** & **异常统一处理层**
- Ubuntu 16.04上 Nginx + Gunicorn + Pipenv部署
## 目录
- [亮点](#亮点)
- [开发工具](#开发工具)
- [开发环境搭建](#开发环境搭建)
- [服务器部署](#服务器部署)
- [本地&线上同步推进](#本地&线上同步推进):针对个人项目
- [上传&下载](#上传&下载)
- [骚操作](#骚操作)
- [三端分离](#三端分离): 后续
- [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://github.com/bodanli159951/mini-shop-server/blob/master/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文档
│ │ ├── __init__.py
│ │ ├── address.py
│ │ ├── banner.py
│ │ ├── base.py
│ │ ├── category.py
│ │ ├── client.py
│ │ ├── file.py
│ │ ├── order.py
│ │ ├── pay.py
│ │ ├── product.py
│ │ ├── theme.py
│ │ ├── token.py
│ │ └── user.py
│ ├── 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 层
│ │ ├── __init__.py
│ │ ├── banner_item.py
│ │ ├── banner.py
│ │ ├── base.py
│ │ ├── category.py
│ │ ├── image.py
│ │ ├── m2m.py
│ │ ├── order.py
│ │ ├── product.py
│ │ ├── theme.py
│ │ ├── user.py
│ │ └── user_address.py
│
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于 Flask 框架开发的微信小程序后端项目 (167个子文件)
index.css 443B
.env 13B
Python面向对象编程指南.epub 792KB
.gitignore 247B
index.html 1014B
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
LICENSE 1KB
README.md 17KB
code.md 887B
example.pdf 992KB
招股说明书_error.pdf 97KB
招股说明书_previous.pdf 96KB
Pipfile 463B
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
order.py 7KB
redprint.py 7KB
base.py 6KB
__init__.py 5KB
user.py 5KB
swagger_filed.py 5KB
forms.py 3KB
scope.py 3KB
setting.py 3KB
token.py 3KB
error_code.py 2KB
address.py 2KB
token_auth.py 2KB
user.py 2KB
user.py 2KB
global_args.py 2KB
order.py 2KB
共 167 条
- 1
- 2
资源评论
创作小达人
- 粉丝: 2028
- 资源: 425
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Java Swing的飞机订票管理系统.zip
- (源码)基于Spring Boot和Redis的秒杀系统.zip
- (源码)基于OVMS v3的无线控制台系统(WifiConsole).zip
- (源码)基于Arduino和ESP32的IoT计算机开关系统.zip
- (源码)基于Qt框架的PX4飞行控制器固件升级系统.zip
- (源码)基于Spring Boot和Vue的需求管理系统.zip
- 基于深度学习YOLOv5的车牌检测与识别项目源码
- (源码)基于Python的CSGO饰品价格分析与比较系统.zip
- ccs3.3安装补丁SR12-CCS-v3.3-SR-3.3.82.13 2
- (源码)基于Spring Boot框架的攀枝花物流系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功