Python Flask 查成绩系统
以下是使用AI生成的Python Flask查成绩系统核心代码:
from flask import Flask, request, jsonify, session
from flask_sqlalchemy import SQLAlchemy
import hashlib
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///grades.db'
app.config['SECRET_KEY'] = 'your-secret-key'
db = SQLAlchemy(app)
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
student_id = db.Column(db.String(20), unique=True, nullable=False)
name = db.Column(db.String(100), nullable=False)
password = db.Column(db.String(200), nullable=False)
class Grade(db.Model):
id = db.Column(db.Integer, primary_key=True)
student_id = db.Column(db.String(20), nullable=False)
subject = db.Column(db.String(100), nullable=False)
score = db.Column(db.Float, nullable=False)
semester = db.Column(db.String(20), nullable=False)
@app.route('/login', methods=['POST'])
def login():
data = request.get_json()
student_id = data.get('student_id')
password = hashlib.md5(data.get('password').encode()).hexdigest()
student = Student.query.filter_by(student_id=student_id, password=password).first()
if student:
session['student_id'] = student_id
return jsonify({'success': True, 'message': '登录成功'})
return jsonify({'success': False, 'message': '学号或密码错误'})
@app.route('/grades', methods=['GET'])
def get_grades():
if 'student_id' not in session:
return jsonify({'error': '请先登录'}), 401
grades = Grade.query.filter_by(student_id=session['student_id']).all()
grade_list = [{'subject': g.subject, 'score': g.score, 'semester': g.semester}
for g in grades]
return jsonify(grade_list)
if __name__ == '__main__':
with app.app_context():
db.create_all()
app.run(debug=True)
JavaScript Node.js + Express 查成绩系统
AI生成的Node.js版本查成绩系统代码:
const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const bcrypt = require('bcryptjs');
const session = require('express-session');
const app = express();
app.use(express.json());
app.use(session({
secret: 'your-secret-key',
resave: false,
saveUninitialized: true
}));
const db = new sqlite3.Database('grades.db');
// 用户登录接口
app.post('/api/login', async (req, res) => {
const { studentId, password } = req.body;
db.get('SELECT * FROM students WHERE student_id = ?', [studentId], async (err, row) => {
if (err) {
return res.status(500).json({ error: '数据库错误' });
}
if (row && await bcrypt.compare(password, row.password)) {
req.session.studentId = studentId;
res.json({ success: true, message: '登录成功' });
} else {
res.status(401).json({ success: false, message: '学号或密码错误' });
}
});
});
// 查询成绩接口
app.get('/api/grades', (req, res) => {
if (!req.session.studentId) {
return res.status(401).json({ error: '请先登录' });
}
db.all('SELECT * FROM grades WHERE student_id = ?', [req.session.studentId], (err, rows) => {
if (err) {
return res.status(500).json({ error: '查询失败' });
}
res.json(rows);
});
});
app.listen(3000, () => {
console.log('服务器运行在端口 3000');
});
Java Spring Boot 查成绩系统
AI生成的Spring Boot版本查成绩系统核心控制器代码:
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "*")
public class GradeController {
@Autowired
private StudentService studentService;
@Autowired
private GradeService gradeService;
@PostMapping("/login")
public ResponseEntity<Map<String, Object>> login(@RequestBody LoginRequest request) {
try {
boolean isValid = studentService.validateStudent(
request.getStudentId(),
request.getPassword()
);
Map<String, Object> response = new HashMap<>();
if (isValid) {
// 设置session
HttpSession session = request.getServletRequest().getSession();
session.setAttribute("studentId", request.getStudentId());
response.put("success", true);
response.put("message", "登录成功");
return ResponseEntity.ok(response);
} else {
response.put("success", false);
response.put("message", "学号或密码错误");
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(response);
}
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@GetMapping("/grades")
public ResponseEntity<List<Grade>> getGrades(HttpSession session) {
String studentId = (String) session.getAttribute("studentId");
if (studentId == null) {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
}
List<Grade> grades = gradeService.getGradesByStudentId(studentId);
return ResponseEntity.ok(grades);
}
}