# flask-学生信息管理系统
**Repository Path**: shyanglin/flask-student-information-management-system
## Basic Information
- **Project Name**: flask-学生信息管理系统
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-09-22
- **Last Updated**: 2022-09-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# flask-学生信息管理系统


## 代码目录
```
├─assets # README图片
├─info # 应用
│ ├─auth # 登录注册
│ ├─index # 主页面
├─logs # 日志文件
├─static # 静态资源文件
│ ├─js # js 文件
│ └─layui # layui模块
├─templates # 静态模板文件
│ ├─admin # 主页面
│ ├─auth # 登录验证
│ ├─change_password # 密码修改
│ └─information # 个人信息
├─extensions.py # 拓展文件
├─model.py # 数据模型
├─configs.py # 配置文件
├─README.md # 自述文件
├─requirements.txt # 第三方库
```
## 源码下载
```
git clone http://gitee.com/admin-workshop/flask-student-information-management-system.git
```
## 运行方式
```
flask run
```
## 代码逻辑
### 前端
#### admin(/admin)
##### 主页面
layui表头,如图

layui表格加载,如图

#### 身份验证(/auth)
##### 登录(/auth/login)

##### 注册(/auth/register)

#### 个人信息
##### 修改个人信息(/admin_information)

##### 查看个人信息(/admin_personal)

### 后端
#### 登录(/auth/login, 仅展示post请求)
```python
# username和password从RequestParser获取
from model import User
from flask_login import login_user
user = User.query.filter_by(username=username, password=password) # 查找用户
if user: # 用户存在
login_user(user)
else:
'''返回弹窗页面'''
```
#### 注册(/auth/register, 仅展示post请求)
```python
from flask_restful.reqparse import RequestParser
from model import User, db
parser = RequestParser()
parser.add_argument('username', location='form')
parser.add_argument('password', location='form')
# ...
res = parser.parse_args()
user_data = {
'username': res.username,
'password': res.password,
'city': res.city,
# ....
}
user = User(**user_data)
db.session.add(user)
db.session.commit()
# 返回登录
```
#### 主页面
##### api
###### /students
学生列表,返回结果:
```python
{"code": 0,
"message": "",
"count": count,
"data": [{}, {}],
'success': True}
```
###### /change_table
修改学生信息,贴出核心代码
```python
parser = RequestParser()
parser.add_argument('name', location='form')
parser.add_argument('chinese', location='form', type=int)
parser.add_argument('math', location='form', type=int)
parser.add_argument('english', location='form', type=int)
args = parser.parse_args() # 获取表单数据
student.name = args.name
student.chinese = args.chinese
student.math = args.math
student.english = args.english
print(student)
db.session.commit()
```
###### /add
添加学生数据
```python
student = Student(**{
'name': request.form.get('name'),
'chinese': request.form.get('chinese', type=int),
'math': request.form.get('math', type=int),
'english': request.form.get('english', type=int)
})
db.session.add(student)
db.session.commit()
```
###### /delete
删除学生数据
```python
name = request.args.get('name')
student = Student.query.filter_by(name=name).first()
db.session.delete(student)
db.session.commit()
```
##### 非api
/admin 主页面
#### 修改个人信息
同样地,也是用RequestParser,此处不再赘述,代码贴上:
```python
parser = RequestParser()
parser.add_argument('username', location='form')
parser.add_argument('password', location='form')
parser.add_argument('city', location='form')
parser.add_argument('hobby', location='form')
parser.add_argument('sex', location='form')
parser.add_argument('text', location='form')
res = parser.parse_args()
for k, v in res.items():
setattr(current_user, k, v)
return redirect('/admin')
```
#### 查看个人信息
仅返回主页面
# 贡献者
[](http://gitee.com/ge-baichen_admin)
[](http://gitee.com/linziran)