做一个简单的学生管理系统。至少含有一个学生表,后台使用Python,框架使用Flask。 实现最基本功能: 登录,注册功能。 能够查询学生表的所有信息并以表格形式显示到页面。 提供一个页面完成向表中插入记录的功能。 提供一个页面完成修改指定id的学生信息的功能。 提供一个完成删除指定id的学生记录的功能。
时间: 2024-02-12 09:04:14 浏览: 42
好的,我明白了你的问题。下面是我的回答。
首先,我们需要安装 Flask 框架和 SQLAlchemy 库,用于连接数据库和操作数据。可以使用以下命令安装:
```
pip install flask
pip install sqlalchemy
```
接下来,我们需要创建一个学生表,可以使用以下 SQL 语句在 MySQL 数据库中创建:
```sql
CREATE TABLE students (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
gender VARCHAR(10) NOT NULL,
PRIMARY KEY (id)
);
```
然后,我们可以使用 Python 和 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'] = 'mysql://username:password@localhost/database_name'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
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)
@app.route('/')
def index():
students = Student.query.all()
return render_template('index.html', students=students)
@app.route('/add', methods=['GET', 'POST'])
def add():
if request.method == 'POST':
name = request.form['name']
age = request.form['age']
gender = request.form['gender']
student = Student(name=name, age=age, gender=gender)
db.session.add(student)
db.session.commit()
return redirect(url_for('index'))
return render_template('add.html')
@app.route('/edit/<int:id>', methods=['GET', 'POST'])
def edit(id):
student = Student.query.get(id)
if request.method == 'POST':
student.name = request.form['name']
student.age = request.form['age']
student.gender = request.form['gender']
db.session.commit()
return redirect(url_for('index'))
return render_template('edit.html', student=student)
@app.route('/delete/<int:id>', methods=['GET', 'POST'])
def delete(id):
student = Student.query.get(id)
db.session.delete(student)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
```
在上面的代码中,我们定义了一个名为 `Student` 的模型,它对应着学生表。然后,我们定义了四个路由函数,分别实现了查询、插入、修改和删除学生记录的功能。其中,`index` 函数用于查询学生表并在页面上显示,`add` 函数用于向表中插入记录,`edit` 函数用于修改指定 id 的学生信息,`delete` 函数用于删除指定 id 的学生记录。
最后,我们可以在模板文件中编写页面代码。以下是一个简单的示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>学生管理系统</title>
</head>
<body>
<h1>学生列表</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for student in students %}
<tr>
<td>{{ student.id }}</td>
<td>{{ student.name }}</td>
<td>{{ student.age }}</td>
<td>{{ student.gender }}</td>
<td>
<a href="{{ url_for('edit', id=student.id) }}">编辑</a>
<a href="{{ url_for('delete', id=student.id) }}">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ url_for('add') }}">添加学生</a>
</body>
</html>
```
在上面的模板文件中,我们使用了 Flask 的模板引擎来渲染页面。通过 `{{ }}` 的语法,我们可以在页面上显示从后台传递过来的数据。同时,我们也使用了 Flask 提供的 `url_for` 函数来生成路由链接。
至此,一个简单的学生管理系统就完成了。当然,这只是一个基础的示例,实际的应用中还需要考虑更多的功能和安全性问题。