张老师: 大家好!最近我们学校准备上线一套迎新管理系统,希望能简化新生报到流程。李同学,你对这个系统有什么想法吗?
李同学: 老师,我觉得可以通过Python Flask框架快速搭建一个简易版的系统,同时搭配MySQL数据库存储学生信息。
张老师: 很好!那具体怎么操作呢?
李同学: 首先我们需要设计数据库结构,比如创建一个`students`表来存储学生的姓名、学号、专业等信息。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
student_id VARCHAR(20) UNIQUE NOT NULL,
major VARCHAR(50),
phone VARCHAR(15)
);
]]>
张老师: 明白了,接下来是如何编写后端逻辑吧?
李同学: 是的,我们可以使用Flask框架构建API接口。例如,添加学生信息的接口如下:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/add_student', methods=['POST'])
def add_student():
data = request.get_json()
name = data['name']
student_id = data['student_id']
major = data['major']
phone = data['phone']
# 插入数据库
cursor.execute("INSERT INTO students (name, student_id, major, phone) VALUES (%s, %s, %s, %s)",
(name, student_id, major, phone))
db.commit()
return jsonify({"message": "Student added successfully"}), 201
]]>
张老师: 这样就能实现基本功能了。不过安全性如何保障呢?
李同学: 我们可以加入JWT(JSON Web Token)进行身份验证,确保只有授权用户才能访问敏感操作。
from flask_jwt_extended import JWTManager, jwt_required, create_access_token
app.config['JWT_SECRET_KEY'] = 'your-secret-key'
jwt = JWTManager(app)
@app.route('/login', methods=['POST'])
def login():
username = request.json.get('username', None)
password = request.json.get('password', None)
if username != 'admin' or password != 'password':
return jsonify({"msg": "Bad username or password"}), 401
access_token = create_access_token(identity=username)
return jsonify(access_token=access_token), 200
]]>
张老师: 感谢你的分享!这套系统确实能大大提升我们的工作效率。