• Python构建学生信息管理系统:构建RESTful API - 学生信息管理系统的后端逻辑


    在之前的博客里,我们已经完成了项目初始化,在本篇博客中,我们将深入探讨如何使用Flask框架实现学生信息管理系统的后端逻辑,特别是通过RESTful API来实现学生信息的增删改查(CRUD)操作。

    Flask RESTful API简介

    RESTful API是一种基于HTTP协议的轻量级架构,用于在网络应用程序之间交换数据。Flask是一个灵活的轻量级Web应用框架,非常适合快速开发RESTful API。

    项目结构

    在开始编写API之前,我们假设你已经完成了项目初始化,并且你的项目结构如下:

    /your-project
        /app
            __init__.py
            models.py
            routes.py
        /static
        /templates
        /config.py
        run.py
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    我们主要要在routes.py中完善我们的功能。

    学生信息的CRUD操作

    1. 创建学生信息(Create)

    首先,我们将创建一个API端点,用于添加新的学生信息。

    from flask import request, jsonify
    from app.models import db, Student
    
    @app.route('/students', methods=['POST'])
    def create_student():
        data = request.get_json()
        new_student = Student(
            FirstName=data['FirstName'],
            LastName=data['LastName'],
            BirthDate=data['BirthDate'],
            Email=data['Email'],
            ClassID=data['ClassID']
        )
        db.session.add(new_student)
        db.session.commit()
        return jsonify(message="Student created successfully."), 201
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这个端点中,我们首先解析传入的JSON数据,然后创建一个新的Student对象,并将其添加到数据库中。

    2. 读取学生信息(Read)

    接下来,我们将实现获取学生信息的API。

    from flask import jsonify
    
    @app.route('/students', methods=['GET'])
    def get_students():
        students = Student.query.all()
        students_data = [{'id': s.StudentID, 'first_name': s.FirstName, 'last_name': s.LastName, 'birth_date': s.BirthDate, 'email': s.Email, 'class_id': s.ClassID} for s in students]
        return jsonify(students=students_data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这个端点将查询数据库中的所有学生信息,并将其作为JSON格式返回。

    3. 更新学生信息(Update)

    现在,我们将实现一个用于更新学生信息的API。

    from flask import request, jsonify
    
    @app.route('/students/', methods=['PUT'])
    def update_student(student_id):
        student = Student.query.get_or_404(student_id)
        data = request.get_json()
        student.FirstName = data.get('FirstName', student.FirstName)
        student.LastName = data.get('LastName', student.LastName)
        student.BirthDate = data.get('BirthDate', student.BirthDate)
        student.Email = data.get('Email', student.Email)
        student.ClassID = data.get('ClassID', student.ClassID)
        db.session.commit()
        return jsonify(message="Student updated successfully.")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这个端点将根据提供的student_id找到对应的学生记录,并根据传入的JSON数据更新相关信息。

    4. 删除学生信息(Delete)

    最后,我们将实现一个删除特定学生信息的API。

    from flask import jsonify
    
    @app.route('/students/', methods=['DELETE'])
    def delete_student(student_id):
        student = Student.query.get_or_404(student_id)
        db.session.delete(student)
        db.session.commit()
        return jsonify(message="Student deleted successfully."), 204
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这个端点将删除指定ID的学生记录,并返回一个204 No Content响应。
    效果:数据库中数据如下:
    在这里插入图片描述

    访问网页结果如下:
    在这里插入图片描述

    结论

    在本篇博客中,我们介绍了如何使用Flask框架实现学生信息管理系统的后端逻辑,包括创建、读取、更新和删除学生信息的RESTful API。其他几个对象也可以参照进行。这些API构成了学生信息管理系统的核心功能,为前端提供了必要的数据交互接口。

    请注意,上述代码示例需要根据你的实际项目结构和模型定义进行适当的调整。此外,为了提高系统安全性,你还需要考虑实现用户认证、授权机制以及输入验证等安全措施。

    随着项目的不断深入,我们将继续探索更多的功能实现和性能优化技巧。敬请期待后续的博客更新!

  • 相关阅读:
    Tomcat
    Vue前端整合后端的CRUD
    EMQX Cloud更新:数据集成新增 HStreamDB & Tablestore
    定时任务系列(9)-Quartz启动核心原理之错过调度
    Halcon Camera-calibration 相关算子(二)
    Es结合springboot(笔记回忆)
    详解module.exports与exports,export与export default,import 与require
    不要小看一个Redis,从头到尾全是精华,阿里Redis速成笔记太香了
    webpack的插件webpack-dev-server
    HTTP/3 ,它来了。
  • 原文地址:https://blog.csdn.net/phsruanjian/article/details/138155108