用flask web和HTML写一个学生成绩查询系统 前段后端都要有
时间: 2024-11-27 19:22:07 浏览: 13
在Flask Web应用中创建一个学生成绩查询系统,通常涉及前后端分离设计。前端使用HTML、CSS和JavaScript构建用户界面,而后端则由Flask处理数据逻辑。下面是简要步骤:
**前端(HTML + JavaScript + Flask-Jinja模板)**:
1. 设计HTML页面布局,包含输入框(如学生ID或姓名)、查询按钮以及展示查询结果的部分。
```html
<!-- templates/main.html -->
<!DOCTYPE html>
<html lang="zh">
<head>
<title>成绩查询</title>
</head>
<body>
<form id="search-form">
<input type="text" id="student-id" placeholder="请输入学生ID或姓名...">
<button type="submit">查询</button>
</form>
<div id="results"></div>
<script src="{{ url_for('static', filename='script.js') }}"></script>
</body>
</html>
```
2. 使用JavaScript编写一些交互逻辑,当表单提交时发送Ajax请求到后端。
**后端(Flask Python脚本)**:
1. 安装必要的依赖,如Flask、Flask-WTF(用于处理表单)和Flask-SQLAlchemy(数据库操作)。
2. 创建`app.py`文件并设置基本路由和配置数据库连接。
```python
from flask import Flask, render_template, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///scores.db'
db = SQLAlchemy(app)
# 假设有一个Student模型表示学生信息
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
scores = db.relationship('Score', backref='student')
# ... 省略其他路由和装饰器...
@app.route('/query_scores', methods=['POST'])
def query_scores():
student_id = request.form.get('student_id')
# 在这里查询数据库并返回成绩列表
result = get_student_scores(student_id) # 这是一个假设函数,需要你自己实现
return jsonify(result)
# ... 省略模型定义和辅助函数...
```
3. 编写`script.js`文件,处理表单提交并在后台获取成绩数据。
```javascript
// script.js
document.getElementById('search-form').addEventListener('submit', (e) => {
e.preventDefault();
const studentId = document.getElementById('student-id').value;
fetch(`/query_scores`, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: `student_id=${studentId}`
})
.then(response => response.json())
.then(data => {
// 更新显示区域
document.getElementById('results').innerHTML = JSON.stringify(data);
});
});
```
阅读全文