# back-end-do
这是一个给女朋友毕业设计的后端计算机复习题小程序的后端,Python3.5以上版本均可以使用(自己用3.7在公司测试用3.8都可以),采用API传递JSON的方式进行连接管理,用到了MYSQL,session等常用技术。
~~采用我也不知道什么的架构(雾)~~
主要的逻辑部分 分为【Model】【Controller】【API】三层
![mainBody](.\doc\pic\mainBody.png)
如何使用本项目:
1. 终端环境下首先安装第三方库pip install -r requirements.txt
2. 导入sql文件(数据库使用mysql)
3. Windows运行run.cmd;Linux运行run.sh(Linux启动nohub会进行后台运行)
项目整体结构架构如下:
![Architecture](.\doc\pic\Architecture.png)
#### 一.Model - 数据库层
文件 models/DBconnect.py
用来与MySQL的数据库进行交互,主要利用了pymysql模块连接数据库和datetime模块记录时间,内容就是基本的增删改查
- 增加数据
- 删除数据
- 修改数据
- 查询数据
- 特殊查询数据
#### 二.Controller - 控制层
文件 control/OPcontrol.py
用来接受数据库层信息并且处理交给API接口模块,进行返回信息处理,数据库返回信息处理的中间控制层,接受传递数据,进行处理,错误排除,也是主要的逻辑管理层。
- 用户登录,注册,登出控制逻辑
- 科目,章节,题目查询控制逻辑
- 题目信息获取,提交,判断正确与否,等控制逻辑
- 章节,题目增删改查等管理端控制逻辑
- 管理端查看作答情况控制逻辑
#### 三.API - API接口层
详细API介绍可以查看doc文件中的两个API文档
文件为main.py,主要会调用启动session模块,日志模块,进行基本的route配置,进行基本的FLASK的配置选项等等配置启动,随后开始相应API访问响应。
(理论上主函数简洁一些比较好,可以考虑把route转而丢尽route文件夹中新建一个route.py这样,但不同系统之间会有一些区别,所以有的时候这样反而造成了一些路径错误出现,没有太多的时间排查就混在了一起)
【笔者自己电脑编写用Windows,有时候在公司写了一下用macOS,而该代码的生产部署又在Linux】
- 用户登录,注册,登出管理API
- 科目,章节,题目查询API
- 题目信息获取,提交API
- 章节,题目增删改查等管理API
- 管理端查看作答情况API
session技术是一个可以判断该用户是否存活的技术,一旦用户从浏览器退出了,就自动需要重新登陆)
### 四.log - 日志管理模块
文件Log/loguti2.py
主要是对Logging的再封装,调用logging,loging.handlers日志句柄,以及系统函数os和时间函数time以进行创建和写入,以及自动创建以日期为目标的日志文件,日志分为四个等级【info】【debug】【warning】【error】越后越严重,进行记录
### 五.其他文件
run.cmd / run.sh 运行文件,直接在系统中执行即可
requirements.txt 第三方库的配置安装文件
doc/ 文档文件,包含说明文档,截图,API接口介绍等等
### 附录 1 - 正确码及其含义
| successCode | 成功详细信息 | 含义 |
| ----------- | ------------------------------------ | ------------------------------ |
| 0 | success login | 成功登陆 |
| 1 | success log out | 成功登出 |
| 2 | success register new account | 成功注册新账号 |
| 3 | You are already login in. | 你已经登陆了 |
| 4 | success get subject | 成功获取科目 |
| 5 | success get chapter | 成功获取章节 |
| 6 | success get title | 成功获取题目 |
| 7 | success, but answer is wrong | 成功提交,但是你的回答错误了 |
| 8 | success, and answer is right | 成功提交,并且你的回答是正确的 |
| 9 | success daily attendance | 成功每日签到(已作废) |
| 10 | success create or update new title | 成功创建或者修改新的题目 |
| 11 | success create or update new chapter | 成功创建或者修改新的章节 |
| 12 | success remove title | 成功删除题目 |
| 13 | success remove chapter | 成功删除章节 |
### 附录 2 - 错误码及其含义
| errorCode | 详细错误信息 | 含义 |
| --------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 0 | You should use POST | 你需要使用POST(检查一下是否使用了GET) |
| 1 | Can not get information, please recheck the input | 无法获取信息,错误原因很多,很有可能是传输失败了 |
| 2 | Wrong password or something else | 错误的用户名密码,登陆出错了 |
| 3 | can not register new account, please recheck. | 你无法注册一个新账号,请重试 |
| 4 | You are not login in. | 你还没有登陆呢 |
| 5 | Missing the necessary incoming parameters | 缺少必要的传入参数 |
| 6 | you are not administrator. | 你不是管理员,请确认管理员账户,如果需要提升为管理员,请联系后台管理提升权限 |
| 7 | failed to insert new title. please recheck the title_id is repeated. | 失败插入新题目,请重新插入 |
| 8 | failed to insert new chapter. please recheck the chapters_id is repeated. | 失败插入新章节,请重新插入 |
| 9 | failed to remove title from title_id, plz rechack" | 失败删除记录通过title_id,请重试 |
| 10 | failed to remove chapter from chapters_id, plz recheck | 失败删除记录通过chapters_id,请重试 |
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Python是一种高级、通用、解释型的编程语言,由Guido van Rossum于1989年发起,1991年正式发布。Python以简洁而清晰的语法著称,强调代码的可读性和易于维护。以下是Python的一些主要特点和优势: 易学易用: Python的语法设计简单直观,更接近自然语言,使初学者更容易上手。这种易学易用的特性促使了Python在教育领域和初学者中的广泛应用。 高级语言: Python是一种高级编程语言,提供了自动内存管理(垃圾回收)等功能,减轻了程序员的负担,同时具有动态类型和面向对象的特性。 跨平台性: Python具有很好的跨平台性,可以在多个操作系统上运行,包括Windows、Linux、macOS等,使得开发的代码可以轻松迁移。 丰富的标准库: Python内置了大量的模块和库,涵盖了文件操作、网络编程、数据库访问等各个方面。这些标准库使得开发者能够快速构建功能丰富的应用程序。 开源: Python是开源的,任何人都可以免费使用并查看源代码。这种开放性促进了Python社区的发展,使得有大量的第三方库和框架可供使用。 强大的社区支持: Python拥有庞大而活跃的开发社区,这使得开发者可以轻松获取帮助、分享经验,并参与到Python的发展中。 适用于多个领域: Python在各种领域都有广泛的应用,包括Web开发、数据科学、人工智能、自动化测试、网络编程等。特别是在数据科学和人工智能领域,Python成为了主流的编程语言之一。 支持面向对象编程: Python支持面向对象编程,允许开发者使用类和对象的概念,提高了代码的重用性和可维护性。
资源推荐
资源详情
资源评论
收起资源包目录
给女票做的408答题小程序的后端,使用Python的Flask设计,毕业设计后端程序 - 是一个题目登陆的WebAPI接口.zip (39个子文件)
SJT-code
run.cmd 30B
.vscode
settings.json 84B
doc
API接口文档_小程序端.docx 424KB
正确错误码.xlsx 11KB
pic
Architecture.png 104KB
mainBody.png 101KB
API接口文档_管理页面端.docx 579KB
408答题小程序后端架构.xmind 57KB
需求文档_管理页面端.docx 15KB
app.py 4KB
main.py 33KB
Log
__init__.py 0B
logCode.md 0B
logutil2.PY 2KB
SQL
HHM.sql 23KB
Test.py 1KB
routes
__init__.py 0B
__pycache__
__init__.cpython-37.pyc 123B
config.cpython-37.pyc 1KB
config.py 1KB
requirements.txt 118B
logs
2021-03-29.txt 6KB
test
__init__.py 0B
tmpTest.py 48B
sessionTest.py 1KB
models
__init__.py 0B
DBconnect.py 16KB
testDB.py 408B
__pycache__
__init__.cpython-37.pyc 123B
DBconnect.cpython-37.pyc 13KB
.gitignore 97B
run.sh 107B
README.md 7KB
control
__init__.py 0B
OPcontrol.py 20KB
Msession.py 3KB
__pycache__
OPcontrol.cpython-37.pyc 15KB
Msession.cpython-37.pyc 3KB
__init__.cpython-37.pyc 124B
共 39 条
- 1
资源评论
JJJ69
- 粉丝: 6131
- 资源: 5674
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- Highlight Plus v20.0.1
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- python tkinter-08-盒子模型.ev4.rar
- Doozy UI Manager 2023
- 基于matlab实现夜间车牌识别程序(1).rar
- 基于matlab实现无线传感器网络无需测距定位算法matlab源代码 包括apit,dv-hop,amorphous在内的共7个
- 基于python的yolov5实现的旋转目标检测
- 基于matlab实现无线传感器网络 CAB定位仿真程序 这是无线传感器节点定位CAB算法的仿真程序,由matlab完成.rar
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功