小明: 嘿,小华,我们学校最近在讨论建立一个在线实习管理系统和迎新系统,你觉得怎么设计才能更高效?
小华: 我觉得我们可以用Python来编写,因为Python有很多强大的库支持Web开发。比如我们可以用Flask框架来搭建网站。
小明: 那我们怎么开始呢?
小华: 首先我们需要安装Flask,可以通过pip install flask命令完成。然后我们可以创建一个简单的应用,例如:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return "欢迎来到在线实习管理系统和迎新系统!"
if __name__ == '__main__':
app.run(debug=True)
]]>
小明: 好的,这看起来很简单。那我们怎么加入迎新功能呢?
小华: 我们可以添加一个表单让用户填写个人信息,比如姓名、学号等,然后保存到数据库。我们可以使用SQLite作为我们的数据库。
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///university.db'
db = SQLAlchemy(app)
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
student_id = db.Column(db.String(20), unique=True, nullable=False)
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
new_student = Student(name=request.form['name'], student_id=request.form['student_id'])
db.session.add(new_student)
db.session.commit()
return '注册成功!'
return render_template('register.html')
]]>
小明: 太棒了,那我们怎么处理教师月报呢?
小华: 我们可以为教师添加一个登录界面,让他们能够查看和提交月报。我们可以使用Flask-Login库来管理用户的登录状态。
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user
login_manager = LoginManager()
login_manager.init_app(app)
class User(UserMixin):
pass
@login_manager.user_loader
def load_user(user_id):
return User.get(user_id)
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
user = User() # 这里假设User类已定义好
login_user(user)
return redirect(url_for('teacher_report'))
return render_template('login.html')
@app.route('/report', methods=['GET', 'POST'])
@login_required
def teacher_report():
if request.method == 'POST':
# 提交月报逻辑
pass
return render_template('report.html')
]]>