代码拉取完成,页面将自动刷新
1、Python环境:
理论上兼容Python2和Python3,细微地方需改动
2、引用第三方库:
1) 本项目使用自带三方包方式,部署时直接复制整个项目即可。
故第三方包存放于项目根目录,常规IDE下直接运行main.py即可。
若出现找不到三方包但确实存在,可能由于PYTHON_PATH环境变量所致,参考第3。
2) 若想使用全局Python环境中pip所安装的包, 请删除本项目自带的三方包。
3、命令行启动(以下任意方式皆可)
1) start.bat 注: on windows
or
./start.sh 注: on linux
2) python src/main.py 注: 根目录下
若 出现找不到包问题:使用:
set PYTHONPATH=%cd% 注: on Windows
or
export PYTHONPATH=`pwd` 注: on Linux
3) python main.py 注: /src目录下
4、接口访问模式
本项目使用token验证方式,用户登录成功后返回token,具体为tk和lc
前端需在登陆接口成功后本地记录tk和lc,在需要验证的接口访问时携带此二参数。
后端接收到tk和lc后若验证通过,装饰器会自动解析用户名,作为每个接口的内定形参。
具体接口测试可参考第5
5、接口测试
Interface Example:
'''
login test: http://localhost:9404/webLogin?username=admin&password=123456
Interface test: http://localhost:9404/test?status=1&tk=eyJhbG&lc=1943043233
Security-code test: http://localhost:9404/login-security-code?1567569328448
'''
6、验证码
验证码需使用字体,字体文件位于src/libs/fonts目录下,
若需替换请准备字体文件,同时修改src/libs/auth_code中create_validate_code函数的参数。
7、Require libs:
pip install
flask # web框架
flask_cors # 支持跨域,前后分离
md5 # md5加密
pillow # 验证码PIL
mysql.connector # mysql官方数据库连接引擎
DBUtils # 数据库连接池
itsdangerous # web框架,也许flask安装会附带
redis # 若线上部署,可选
8、redis缓存
src/libs/redisEx2模块为redis的二次封装,兼容有redis和无redis两种情形。
本项目暂时使用本地程序内存模式local_model(非redis),
即在没有redis环境下模拟redis服务,真实redis环境修改配置和模式即可。
9、配置
src/config.py为主要配置文件
src/common/key.py为标准字典文件
10、数据库
数据库使用mysql,测试数据库含有user和logs两个表,转储sql文件见src/docs/testDB.sql
数据库准备:
mysql -u root -p
password
CREATE DATABASE IF NOT EXISTS testDB DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
导入数据库文件:
use testDB;
source /root/testDB.sql
插入测试数据:
insert into user (username, password, level, createTime) values ('admin', '123456', 6, '2019-01-01')
亦可使用/src/login.py中的createUser()函数
字段说明:
由于测试库MySQL版本较低,无法使用自动时间戳字段
11、用户权限控制
src/main.py文件中接口函数的装饰器 @authRequired('lv1') 控制接口用户验证和权限,
若为开放接口无需登录,则无需添加此装饰器。
其中参数'lvn'代表所需的权限等级,对应数据库用户表的level字段,等级越高,权限越高。
高级用户有权访问低级权限接口。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。