当前位置: 首页 > article >正文

Python快速入门 —— 第五节:接口开发

第五节:接口开发

目标:

学习使用Flask框架开发简单的Web接口,实现对学生信息的增删改查,通过HTTP请求与应用交互。

内容:
  1. Flask简介

    • Flask是一个轻量级的Python Web框架,使用简单,扩展性强,适合快速开发Web应用。
  2. 安装Flask

    pip install flask
    
  3. 创建Flask应用

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return 'Hello, Flask!'
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    • 运行后访问http://localhost:5000/,即可看到“Hello, Flask!”。
  4. 定义API接口

    • 获取所有学生信息GET /students
    • 获取特定学生信息GET /students/<name>
    • 添加学生信息POST /students
    • 更新学生信息PUT /students/<name>
    • 删除学生信息DELETE /students/<name>
  5. 实现API接口

    from flask import Flask, request, jsonify
    app = Flask(__name__)
    db = StudentDB()  # 使用前一节定义的StudentDB类
    
    @app.route('/students', methods=['GET'])
    def get_students():
        students = db.get_all_students()
        return jsonify(students)
    
    @app.route('/students/<name>', methods=['GET'])
    def get_student(name):
        student = db.get_student(name)
        if student:
            return jsonify(student)
        else:
            return 'Student not found', 404
    
    @app.route('/students', methods=['POST'])
    def add_student():
        data = request.get_json()
        db.add_student(data['name'], data['age'], data['major'])
        return 'Student added', 201
    
    @app.route('/students/<name>', methods=['PUT'])
    def update_student(name):
        data = request.get_json()
        db.update_student(name, age=data.get('age'), major=data.get('major'))
        return 'Student updated', 200
    
    @app.route('/students/<name>', methods=['DELETE'])
    def delete_student(name):
        db.delete_student(name)
        return 'Student deleted', 200
    
    if __name__ == '__main__':
        app.run(debug=True)
    
  6. 测试接口

    • 使用工具如Postman或curl发送HTTP请求,测试各个接口的功能。
练习:
  • 使用curl命令或Postman,向/students接口发送GET请求,获取所有学生信息。
  • /students接口发送POST请求,添加一个新的学生信息。
  • 更新某个学生的信息,然后验证更新结果。
  • 删除一个学生信息,并确保数据库中该记录已被删除。


http://www.kler.cn/news/307940.html

相关文章:

  • [项目][WebServer][ThreadPool]详细讲解
  • 猫狗识别大模型——基于python语言
  • C# WPF中实现深拷贝的五种方式
  • 商业银行零售业务数智运营探索与应用
  • BLE 协议之物理层
  • TCP核心机制
  • 数据结构(7.3_2)——平衡二叉树
  • iOS 18 适配 Xcode 16 问题
  • 线性代数(宋浩版)(4)
  • 基于Java、SpringBoot、Vue的加油站管理系统设计
  • 【Lua学习】Lua最最基础的
  • Hugging Face NLP课程学习记录 - 0. 安装transformers库 1. Transformer 模型
  • STM32+FATFS+SD卡+RTC(生成.CSV格式文件)
  • 代码随想录_刷题笔记_第一次
  • Invoke-Maldaptive:一款针对LDAP SearchFilter的安全分析工具
  • 文生视频算法
  • SprinBoot+Vue便民医疗服务微信小程序的设计与实现
  • 基于SpringBoot+Vue+MySQL的在线视频教育平台
  • OpenGL(四) 纹理贴图
  • Linux基础---10进程管理
  • YOLOv10:深度剖析与应用前景展望
  • 文章资讯职场话题网站源码整站资源自带2000+数据
  • python之排列组合1
  • 拓扑学和低维拓扑保护
  • 其他图嵌入方法(6)
  • 鸿蒙开发入门day19-使用NDK接口构建UI(二)
  • MFC工控项目实例之十七添加手动测试界面
  • Spring Boot-Swagger相关问题
  • Docker容器技术1——docker基本操作
  • 机器学习算法与Python实战 | 概率、统计学在机器学习中应用:20个Python示例(建议收藏!)