请用flask写一个完整的学生系统
时间: 2024-01-30 09:03:34 浏览: 17
好的,下面是一个简单的学生管理系统的 Flask 实现,包括学生的增加、查询、编辑、删除等功能:
```python
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.db'
db = SQLAlchemy(app)
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False)
age = db.Column(db.Integer, nullable=False)
gender = db.Column(db.String(10), nullable=False)
grade = db.Column(db.Integer, nullable=False)
@app.route('/')
def index():
students = Student.query.all()
return render_template('index.html', students=students)
@app.route('/add', methods=['GET', 'POST'])
def add_student():
if request.method == 'POST':
name = request.form['name']
age = request.form['age']
gender = request.form['gender']
grade = request.form['grade']
student = Student(name=name, age=age, gender=gender, grade=grade)
db.session.add(student)
db.session.commit()
return redirect(url_for('index'))
else:
return render_template('add.html')
@app.route('/edit/<int:id>', methods=['GET', 'POST'])
def edit_student(id):
student = Student.query.get_or_404(id)
if request.method == 'POST':
student.name = request.form['name']
student.age = request.form['age']
student.gender = request.form['gender']
student.grade = request.form['grade']
db.session.commit()
return redirect(url_for('index'))
else:
return render_template('edit.html', student=student)
@app.route('/delete/<int:id>', methods=['POST'])
def delete_student(id):
student = Student.query.get_or_404(id)
db.session.delete(student)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
db.create_all()
app.run(debug=True)
```
在这个实现中,我们首先定义了一个 `Student` 类作为 ORM 模型,用于创建学生表和学生记录。然后,我们定义了四个路由函数:
1. `index` 函数用于显示所有学生的列表。
2. `add_student` 函数用于添加新的学生记录。
3. `edit_student` 函数用于编辑学生记录。
4. `delete_student` 函数用于删除学生记录。
我们使用 Flask 和 SQLAlchemy 来处理 HTTP 请求和数据库操作,使用模板引擎来生成 HTML 页面。在运行 Flask 应用程序之前,我们需要在命令行中运行 `db.create_all()` 来创建数据库表。
以上是一个简单的学生管理系统的 Flask 实现,如需更多功能和模块,可以根据需求进行扩展和改进。