13 - Docker来部署flaskDemo项目

README.md文件内容:

# flaskDemo

本接口项目的技术选型:Python+Flask+MySQL+Redis,
通过 Python+Flask 来开发接口
使用 MySQL 来存储用户信息
使用 Redis 用于存储token
目前为纯后端接口,暂无前端界面,可通过 Postman、Jmeter、Fiddler 等工具访问请求接口。

## 项目部署

首先,下载项目源码后,在根目录下找到 requirements.txt 文件,然后通过 pip 工具安装 requirements.txt 依赖,执行命令:

```
pip3 install -r requirements.txt
```

接着,将项目部署起来,在本项目中其实就是利用 Python 执行 app.py 文件,以下为我在Linux上的部署命令。

```
# /root/flaskDemo/app.py表示项目根路径下的app.py启动入口文件路径
# /root/flaskDemo/flaskDemo.log表示输出的日志文件路径
nohup python3 /root/flaskDemo/app.py >/root/flaskDemo/flaskDemo.log 2>&1 &
```

## 数据库设计

数据库建表语句如下:

```
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(255) NOT NULL,
  `role` tinyint(1) NOT NULL,
  `sex` tinyint(1) DEFAULT NULL,
  `telephone` varchar(255) NOT NULL,
  `address` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `telephone` (`telephone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```

user表中各字段对应含义如下:

```
id:用户id号,自增长
username:用户名
password:密码
role:用户角色,0表示管理员用户,1表示普通用户
sex:性别,0表示男性,1表示女性,允许为空
telephone:手机号
address:联系地址,允许为空
```

## 接口请求示例

- 获取所有用户接口请求示例(可直接在浏览器输入栏请求):

```
请求方式:GET
请求地址:http://127.0.0.1:9999/users
```

- 获取wintest用户接口请求示例(可直接在浏览器输入栏请求):

```
请求方式:GET
请求地址:http://127.0.0.1:9999/users/wintest
```

- 用户注册接口请求示例:

```
请求方式:POST
请求地址:http://127.0.0.1:9999/register
请求头:
Content-Type: application/json

Body:{"username": "wintest5", "password": "123456", "sex": "1", "telephone":"13500010005", "address": "上海市黄浦区"}
```

- 用户登录接口请求示例:

```
请求方式:POST
请求地址:http://127.0.0.1:9999/login
请求头:
Content-Type: application/x-www-form-urlencoded

Body:username=wintest&password=123456
```

- 修改用户接口请求示例( token 可以从用户登录成功后的接口返回数据中获取):

```
请求方式:PUT
请求地址:http://127.0.0.1:9999/update/user/3
请求头:
Content-Type: application/json

Body:{"admin_user": "wintest", "token": "f54f9d6ebba2c75d45ba00a8832cb593", "sex": "1", "address": "广州市天河区", "password": "12345678", "telephone": "13500010003"}
```

- 删除用户接口请求示例( token 可以从用户登录成功后的接口返回数据中获取)::

```
请求方式:POST
请求地址:http://127.0.0.1:9999/delete/user/test
请求头:
Content-Type: application/json

Body:{"admin_user": "wintest", "token": "wintest1587830406"}
```

 

 

第一步:从Github网站下载flaskDemo源代码并导入Pycharm工具

备注:除了venv目录外,都是原始目

第二步:按照提示配置flaskDemo项目的虚拟环境venv

第三步:安装requirements.txt依赖文件

1、在项目根目录下找到 requirements.txt依赖文件,并通过pip3命令执行

CC:flaskDemo zhangchunyan$ pip3 install -r requirements.txt 
Collecting PyMySQL==0.9.3
  Downloading PyMySQL-0.9.3-py2.py3-none-any.whl (47 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.7/47.7 kB 84.5 kB/s eta 0:00:00
Collecting Flask==1.0.3
  Downloading Flask-1.0.3-py2.py3-none-any.whl (92 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 92.1/92.1 kB 17.1 kB/s eta 0:00:00
Collecting redis==3.4.1
  Downloading redis-3.4.1-py2.py3-none-any.whl (71 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.1/71.1 kB 8.7 kB/s eta 0:00:00
Collecting itsdangerous>=0.24
  Downloading itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting Werkzeug>=0.14
  Downloading Werkzeug-2.2.2-py3-none-any.whl (232 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 232.7/232.7 kB 17.6 kB/s eta 0:00:00
Collecting Jinja2>=2.10
  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting click>=5.1
  Using cached click-8.1.3-py3-none-any.whl (96 kB)
Collecting MarkupSafe>=2.0
  Using cached MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl (13 kB)
Installing collected packages: PyMySQL, redis, MarkupSafe, itsdangerous, click, Werkzeug, Jinja2, Flask
Successfully installed Flask-1.0.3 Jinja2-3.1.2 MarkupSafe-2.1.1 PyMySQL-0.9.3 Werkzeug-2.2.2 click-8.1.3 itsdangerous-2.1.2 redis-3.4.1

2、查看当前依赖库,看看所需库是否正确安装(已经正确安装)

第四步:使用Docker技术安装组件

1、所需安装的组件为:

PyMySQL==0.9.3
Flask==1.0.3
redis==3.4.1

2、使用Docker安装Mysql

 

3、使用Docker安装Flask

4、使用Docker安装Redis



 

posted @ 2022-08-27 21:32  xiaoyanhahaha  阅读(196)  评论(0编辑  收藏  举报