_冯河 2023-03-09 19:04 采纳率: 0%
浏览 214
已结题

python学生成绩管理系统求元码

要求需要录入,删除,修改,查找,统计,排序…
需要设置密码…
求解,666666666666

  • 写回答

15条回答 默认 最新

  • simple_chenc 2023-03-09 19:27
    关注

    一下是参考GPT给出的答案:
    实现一个学生成绩管理系统的流程可以分为以下步骤:

    安装 Flask 和相关依赖
    设计数据库模型
    创建 Flask 应用程序
    创建数据库
    创建用户认证系统
    创建学生管理系统
    下面是一个简单的示例程序,可以用来实现上述需求:

    安装 Flask 和相关依赖
    首先,我们需要在本地计算机安装 Flask 和相关依赖。可以使用 pip 命令进行安装:

    pip install Flask
    pip install flask_sqlalchemy
    pip install flask_login
    
    

    代码实现如下

    
    from flask import Flask, render_template, redirect, url_for, request, flash
    from flask_sqlalchemy import SQLAlchemy
    from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user
    from werkzeug.security import generate_password_hash, check_password_hash
    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'secret'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
    
    db = SQLAlchemy(app)
    
    login_manager = LoginManager()
    login_manager.init_app(app)
    login_manager.login_view = 'main.login'
    
    class User(UserMixin, db.Model):
        id = db.Column(db.Integer, primary_key=True)
        username = db.Column(db.String(50), unique=True)
        password = db.Column(db.String(100))
    
        def set_password(self, password):
            self.password = generate_password_hash(password)
    
        def check_password(self, password):
            return check_password_hash(self.password, password)
    
    @login_manager.user_loader
    def load_user(user_id):
        return User.query.get(int(user_id))
    
    class Student(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(50))
        grade = db.Column(db.Integer)
    
    main = Blueprint('main', __name__)
    
    @main.route('/')
    def index():
        return render_template('index.html')
    
    @main.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'POST':
            username = request.form['username']
            password = request.form['password']
            remember = True if 'remember' in request.form else False
    
            user = User.query.filter_by(username=username).first()
    
            if not user or not user.check_password(password):
                flash('Please check your login details and try again.')
                return redirect(url_for('main.login'))
    
            login_user(user, remember=remember)
            return redirect(url_for('main.dashboard'))
    
        return render_template('login.html')
    
    @main.route('/signup', methods=['GET', 'POST'])
    def signup():
        if request.method == 'POST':
            username = request.form['username']
            password = request.form['password']
    
            user = User.query.filter_by(username=username).first()
    
            if user:
                flash('Username already exists.')
                return redirect(url_for('main.signup'))
    
            new_user = User(username=username)
            new_user.set_password(password)
    
            db.session.add(new_user)
            db.session.commit()
    
            return redirect(url_for('main.login'))
    
        return render_template('signup.html')
    
    @main.route('/dashboard')
    @login_required
    def dashboard():
        return render_template('dashboard.html', name=current_user.username)
    
    students = Blueprint('students', __name__)
    
    @students.route('/students')
    @login_required
    def student_list():
        students = Student.query.all()
        return render_template('students/list.html', students=students)
    
    @students.route('/students/add', methods=['GET', 'POST'])
    @login_required
    def add_student():
        if request.method == 'POST':
            name = request.form['name']
            grade = request.form['grade']
    
            student = Student(name=name, grade=grade)
            db.session.add(student)
            db.session.commit()
    
            flash('Student added successfully.')
            return redirect(url_for('students.student_list'))
    
        return render_template('students/add.html')
    
    @students.route('/students/delete/<int:student_id>', methods=['POST'])
    @login_required
    def delete_student(student_id):
        student = Student.query.get_or_404(student_id)
        db.session.delete(student)
        db.session.commit()
    
        flash('Student deleted successfully.')
        return redirect(url_for('students.student_list'))
    
    @students.route('/students/search', methods=['GET', 'POST'])
    @login_required
    def search_student():
        if request.method == 'POST':
            search_term = request.form['search_term']
            students = Student.query.filter(Student.name.like(f'%{search_term}%')).all()
    
            return render_template('students/search.html', students=students, search_term=search_term)
    
        return render_template('students/search.html')
    
    @students.route('/students/stats')
    @login_required
    def student_stats():
        total_students = Student.query.count()
        avg_grade = db.session.query(db.func.avg(Student.grade)).scalar()
        max_grade = db.session.query(db.func.max(Student.grade)).scalar()
        min_grade = db.session.query(db.func.min(Student.grade)).scalar()
    
        return render_template('students/stats.html', total_students=total_students, avg_grade=avg_grade, max_grade=max_grade, min_grade=min_grade)
    
    @students.route('/students/sort/<string:sort_type>')
    @login_required
    def sort_students(sort_type):
        if sort_type == 'name':
            students = Student.query.order_by(Student.name).all()
        elif sort_type == 'grade':
            students = Student.query.order_by(Student.grade.desc()).all()
        else:
            students = []
    
        return render_template('students/list.html', students=students)
    
    app.register_blueprint(main)
    app.register_blueprint(students)
    
    if __name__ == '__main__':
        db.create_all()
        app.run()
    

    前端代码如下

    {% extends 'base.html' %}
    
    {% block content %}
      <h1>Student List</h1>
      <table class="table">
        <thead>
          <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Grade</th>
            <th>Actions</th>
          </tr>
        </thead>
        <tbody>
          {% for student in students %}
            <tr>
              <td>{{ student.id }}</td>
              <td>{{ student.name }}</td>
              <td>{{ student.grade }}</td>
              <td>
                <a href="{{ url_for('students.delete_student', student_id=student.id) }}" class="btn btn-danger btn-sm">Delete</a>
              </td>
            </tr>
          {% endfor %}
        </tbody>
      </table>
      <a href="{{ url_for('students.add_student') }}" class="btn btn-primary">Add Student</a>
      <a href="{{ url_for('students.search_student') }}" class="btn btn-primary">Search Student</a>
      <a href="{{ url_for('students.student_stats') }}" class="btn btn-primary">Student Stats</a>
      <a href="{{ url_for('students.sort_students', sort_type='name') }}" class="btn btn-primary">Sort by Name</a>
      <a href="{{ url_for('students.sort_students', sort_type='grade') }}" class="btn btn-primary">Sort by Grade</a>
    {% endblock %}
    
    
    
    

    这就是一个简单的学生成绩管理系统的完整代码,可以在本地计算机上运行。现在您可以打开 Web 浏览器并访问 http://127.0.0.1:5000/%EF%BC%8C%E5%B0%9D%E8%AF%95%E5%9C%A8%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%B7%BB%E5%8A%A0%E3%80%81%E5%88%A0%E9%99%A4%E3%80%81%E6%9F%A5%E7%9C%8B%E3%80%81%E6%9F%A5%E6%89%BE%E3%80%81%E7%BB%9F%E8%AE%A1%E5%92%8C%E6%8E%92%E5%BA%8F%E5%AD%A6%E7%94%9F%E6%95%B0%E6%8D%AE%E3%80%82

    评论

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 请采纳用户回复 3月12日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 微信原生小程序tabBar编译报错
  • ¥350 麦克风声源定位坐标不准
  • ¥15 apifox与swagger使用
  • ¥15 egg异步请求返回404的问题
  • ¥20 Ti毫米波雷达板同步
  • ¥15 安装了kali后用VM打开,没有鼠标且无法控制怎么办啊
  • ¥15 关于#python#的问题:无功优化问题数学建模要以3机9节点为算例编写一个以最小有功网损为目标的无功优化问题,想要了解清楚其中数学建模的具体公式进行学习
  • ¥15 mvc采用element分页的问题
  • ¥15 proteus怎样构建他励直流发电机模型?
  • ¥15 求制作PPT有偿,帮