张教授:你好李同学,听说你正在研究高校网上办事大厅的相关项目?
李同学:是的张教授,我打算用Python Flask来实现这个系统。
张教授:很好,那我们先从简单的开始,比如学生如何提交请假申请吧。
李同学:好的,首先我们需要创建一个表单页面,让用户输入相关信息。
from flask import Flask, render_template, request app = Flask(__name__) @app.route('/apply', methods=['GET', 'POST']) def apply(): if request.method == 'POST': name = request.form['name'] start_date = request.form['start_date'] end_date = request.form['end_date'] reason = request.form['reason'] # 假设这里调用数据库存储数据 save_to_db(name, start_date, end_date, reason) return '申请已提交!' return render_template('apply.html')
张教授:这段代码看起来不错,不过你还得确保HTML表单正确传递数据。
请假申请
李同学:明白了,接下来我需要设计数据库来保存这些信息。
张教授:可以使用SQLAlchemy来简化数据库操作。
from flask_sqlalchemy import SQLAlchemy app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///requests.db' db = SQLAlchemy(app) class LeaveRequest(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) start_date = db.Column(db.Date, nullable=False) end_date = db.Column(db.Date, nullable=False) reason = db.Column(db.Text, nullable=False)
张教授:最后一步是添加一些演示数据以便测试系统功能。
with app.app_context(): db.create_all() demo_request = LeaveRequest(name='张三', start_date='2023-11-01', end_date='2023-11-05', reason='家庭事务') db.session.add(demo_request) db.session.commit()
李同学:这样我们就完成了一个基本的高校网上办事大厅的演示系统!
张教授:不错,继续优化用户体验和其他功能模块。