QAPlatform

1、介绍

2、软件架构

QAPlatform 使用 Python3 进行开发,主要选用了 django+django rest framework(简称:drf)+pymysql+redis+celery+uwsgi 框架组合。

3、部署教程

本次部署环境为 CentOS7 操作系统。Windows 操作系统,请参阅 README.windows.md 文档。

本项目采用 docker+mysql+redis+nginx+uwsgi 进行部署;其中 redis、mysql、nginx 使用了 docker 部署,用户可以使用自己熟悉的方式安装 redis、mysql、nginx。

3.1、CentOS7 安装 docker

yum install -y epel-release docker-io

3.2、docker 安装 redis

docker run -d --name redis -p 6379:6379 --restart=always docker.io/redis:latest

3.3、docker 安装 mysql

安装mysql数据库
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --restart=always -v /var/lib/mysql:/var/lib/mysql docker.io/mysql:5.7.28

3.4、docker 安装 nginx,部署前端程序

docker run -d --name nginx -p 80:80 --restart=always docker.io/nginx

# 注意:结合部署环境的情况,修改nginx配置如下
# 1、修改QAPlatform部署的服务器IP以及服务监听的端口
# 示例:系统部署的服务器ip为172.17.0.1;uwsgi.ini设置的程序端口为8000,那么upstream QAPlatform配置如下代码所示
upstream QAPlatform {
    # ip使用部署服务器的ip或域名,端口与uwsgi.ini设置的端口保持一致
    server 172.17.0.1:8000;
}

# 2、修改nginx监听的端口,默认监听的是80端口
# 示例:nginx监听的端口为80,那么server listen配置如下代码所示
server {
    listen 80;
}

# 3、将 nginx配置文件 目录下的nginx-socket.conf更名为nginx.conf;再将nginx.conf拷贝到nginx容器的/etc/nginx目录中
docker cp ./nginx配置文件/nginx.conf nginx:/etc/nginx

# 4、将已打包的前端程序dist目录中的文件拷贝到nginx容器的/home/QAPlatformWeb目录中
docker cp ./dist nginx:/home/QAPlatformWeb

# 5、将nginx服务重新加载
docker exec nginx nginx -s reload

3.5、安装 Python、Pip 环境,创建虚拟环境

一、安装Python环境
# 1、安装依赖
sudo yum install -y libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel zlib gcc make

# 2、下载Python程序
# Python包地址:https://www.python.org/ftp/python/
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz

# 3、解压Python-3.8.5.tgz
tar -zxvf Python-3.8.5.tgz

# 4、编译安装
sudo mkdir /usr/local/python3.8.5
cd Python-3.8.5
sudo ./configure --prefix=/usr/local/python3.8.5
sudo make && sudo make install

# 5、建立软链接
sudo ln -s /usr/local/python3.8.5/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python3.8.5/bin/pip3 /usr/bin/pip3

# 6、验证安装
python3 -V
pip3 -V

二、安装虚拟环境、创建虚拟环境
# 1、安装虚拟环境virtualenv
yum install -y python-virtualenv

# 2、创建虚拟环境
# 在项目根目录创建虚拟环境
virtualenv -p python3 venv

# 3、激活虚拟环境
source ./venv/bin/activate

# 4、退出虚拟环境
deactivate

3.6、安装项目依赖

# 在激活的虚拟环境中安装项目依赖
# 在requirements.txt所在目录中执行以下命令
pip install -r requirements.txt

3.7、迁移数据库,导入初始数据

# 创建数据库
# 1、进入mysql docker容器
docker exec -it mysql /bin/bash
# 2、登录mysql数据库
mysql -uroot -proot
# 3、创建QAPlatform数据库
CREATE DATABASE IF NOT EXISTS QAPlatform DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# 注:本项目的数据库名为:QAPlatform,用户名为:root,密码为:root;用户可根据实际需求,创建相应的数据库以及用户名和密码,并且在项目的QAPlatform/settings.py文件中修改数据库配置,保持一致即可。

# 执行迁移数据库,在manage.py所在目录执行以下命令
python manage.py makemigrations
python manage.py migrate

# 数据库迁移成功生成表后,执行 sql 文件夹中的脚本,导入初始数据
# 执行顺序:basic_user.sql、basic_role.sql、basic_user_roles.sql、basic_markdown.sql、basic_permission.sql

4、使用说明

4.1、启动、停止 uwsgi 服务

# 启动服务,参数-d代表后台运行
uwsgi -d --ini uwsgi.ini

# 重新加载服务
uwsgi --reload uwsgi.pid

# 停止服务
uwsgi --stop uwsgi.pid

4.2、启动定时服务 celery

# 在项目QAPlatform目录中执行以下命令,启动celery定时服务
nohup celery worker -A QAPlatform --loglevel=info --pool=solo --pidfile=celery-worker.pid --logfile=./logs/celery-worker.log &

4.3、启动定时调度服务 django_celery_beat

# 在项目QAPlatform目录中执行以下命令,启动celery定时调度服务
nohup celery beat -A QAPlatform --loglevel=info --scheduler django_celery_beat.schedulers:DatabaseScheduler --pidfile=celery-beat.pid --logfile=./logs/celery-beat.log &

5、前端界面展示

5.1、定时任务服务

5.2、接口自动化测试


↙↙↙阅读原文可查看相关链接,并与作者交流