小明:最近学校想开发一套排课系统,但预算有限,听说有免费的方案?
小红:是啊,我刚好研究过一些开源项目,可以试试!不过得先解决用户登录问题。
小明:对,登录很重要。我们用Python Flask框架怎么样?
小红:好主意,Flask轻量级又灵活。首先定义用户模型:
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
小红:接着实现注册与登录功能:
@app.route('/register', methods=['POST'])
def register():
data = request.get_json()
new_user = User(username=data['username'], password=data['password'])
db.session.add(new_user)
db.session.commit()
return jsonify({'message': 'User registered successfully'}), 201
@app.route('/login', methods=['POST'])
def login():
data = request.get_json()
user = User.query.filter_by(username=data['username']).first()
if user and user.password == data['password']:
return jsonify({'message': 'Login successful'}), 200
else:
return jsonify({'message': 'Invalid credentials'}), 401
小明:很好!接下来怎么处理排课逻辑呢?
@app.route('/schedule', methods=['POST'])
def schedule():
if not request.is_json:
return jsonify({"error": "Missing JSON in request"}), 400
data = request.get_json()
teacher = data['teacher']
course = data['course']
time_slot = data['time_slot']
# 这里可以加入更多复杂算法
return jsonify({
"message": f"Course {course} scheduled for {teacher} at {time_slot}"
}), 200
小红:最后别忘了启动服务:
if __name__ == '__main__':
db.create_all()
app.run(debug=True)
小明:这样我们就有了一个基本的免费排课系统,支持用户登录和课程安排。
小红:没错,后续还可以扩展更多功能,比如冲突检测或图形化界面。
]]>
本站部分内容及素材来源于互联网,由AI智能生成,如有侵权或言论不当,联系必删!