美文网首页脚本我也码思科DevNet
Python小项目:快速开发出一个简单的学生管理系统

Python小项目:快速开发出一个简单的学生管理系统

作者: 妄心xyx | 来源:发表于2019-01-08 11:28 被阅读104次

    本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」。

    这个系统主要完成下面增删改查的功能:

    包括:

    • 学校信息的管理
    • 教师信息的管理
    • 学生信息的管理

    根据Api请求的动作:

    • POST: 增加信息
    • GET: 查询信息
    • PUT: 更新信息
    • DELETE: 删除信息

    可以以下面一个简单的实例看这个系统完成什么样的工作:

    用Python小项目:快速开发出一个简单的学生管理系统

    发送curl 命令:

    用Python小项目:快速开发出一个简单的学生管理系统

    返回结果:

    用Python小项目:快速开发出一个简单的学生管理系统

    其他的动作类似的发送api 请求,完成相应的动作,真实的项目往往后加上数据库的操作。

    整个流程主要包括:

    • restful api 设计
    • 数据表设计
    • 开发:目录的结构、一致性
    • 结果展示

    1. Restful API 设计

    主要包括URL 设计和 状态码的设计:

    用Python小项目:快速开发出一个简单的学生管理系统

    POST:

    用Python小项目:快速开发出一个简单的学生管理系统 用Python小项目:快速开发出一个简单的学生管理系统

    GET:

    用Python小项目:快速开发出一个简单的学生管理系统 用Python小项目:快速开发出一个简单的学生管理系统

    PUT:

    用Python小项目:快速开发出一个简单的学生管理系统 用Python小项目:快速开发出一个简单的学生管理系统

    DELETE:

    用Python小项目:快速开发出一个简单的学生管理系统 用Python小项目:快速开发出一个简单的学生管理系统

    2. 数据库设计

    主要包括:表设计,字段类型等的设计,鉴于篇幅有限只展示School 表:

    School:

    用Python小项目:快速开发出一个简单的学生管理系统

    3. 开发

    目录结构:考虑两个因素

    • 耦合性
    • 扩展性

    数据库操作和业务操作分开,提供接口:

    用Python小项目:快速开发出一个简单的学生管理系统 用Python小项目:快速开发出一个简单的学生管理系统

    数据库API:

    主要使用sqlalchemy 的增删改查进行封装:

    用Python小项目:快速开发出一个简单的学生管理系统

    以add 实例:

    用Python小项目:快速开发出一个简单的学生管理系统

    flask_api:

    主要使用flask 定义不同动作的接口:

    用Python小项目:快速开发出一个简单的学生管理系统

    以POST示例:

    用Python小项目:快速开发出一个简单的学生管理系统

    4. 工具

    restful api 发送请求命令工具:

    • POSTMAN: chrome 浏览器插件
    • RESTClient: 火狐浏览器插件
    • 服务器端:用curl 命令吧

    POSTMAN 示例图:

    用Python小项目:快速开发出一个简单的学生管理系统

    postman.png

    5. 结果展示

    发送请求(api) --》 数据库增删改查(数据持久化) --》 返回Json 格式的数据和状态码(展示)

    用Python小项目:快速开发出一个简单的学生管理系统

    result:

    用Python小项目:快速开发出一个简单的学生管理系统

    数据库 school 表中插入这条数据,并把插入的数据信息展示出来。

    用Python小项目:快速开发出一个简单的学生管理系统

    school_post.png

    code:

    code

    用Python小项目:快速开发出一个简单的学生管理系统

    相关文章

      网友评论

        本文标题:Python小项目:快速开发出一个简单的学生管理系统

        本文链接:https://www.haomeiwen.com/subject/bijvrqtx.html