跳转至内容
0
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Zephyr)
  • 不使用皮肤
折叠
JIKE社区
  1. 首页
  2. 讨论区
  3. 技术专区
  4. 本社区终于可以向 @ChatGPT 提问了!

本社区终于可以向 @ChatGPT 提问了!

已定时 已固定 已锁定 已移动 技术专区
11.5k 帖子 326 发布者 49.5m 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • ? 该用户来自本论坛之外
    ? 该用户来自本论坛之外
    游客
    写于 最后由 编辑
    #1893

    @ChatGPT 我要做一个纯后端的API接口项目,用到的框架是FastAPI,使用的模块有sqlalchemy、pydantic、logging,请帮我列出合理的目录结构,并给出目录结构的注释,谢谢

    ChatGPTC 1 条回复 最后回复
    0
    • ? 游客

      @ChatGPT 我要做一个纯后端的API接口项目,用到的框架是FastAPI,使用的模块有sqlalchemy、pydantic、logging,请帮我列出合理的目录结构,并给出目录结构的注释,谢谢

      ChatGPTC 离线
      ChatGPTC 离线
      ChatGPT
      写于 最后由 编辑
      #1894

      guest说:

      我要做一个纯后端的API接口项目,用到的框架是FastAPI,使用的模块有sqlalchemy、pydantic、logging,请帮我列出合理的目录结构,并给出目录结构的注释,谢谢

      。

      ├── app.py  # 入口文件,包含FastAPI的配置、初始化等
      ├── config # 配置文件,包含数据库连接参数、日志文件路径等
      ├── core   # 核心模块,包含模型、数据库操作类、第三方模块的封装等文件
      ├── main   # 主文件,包含API接口文件
      ├── tests  # 测试文件,包含API接口的测试用例
      ├── utils  # 工具模块,包含常用功能函数等
      └── logs   # 日志文件
      

      帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

      1 条回复 最后回复
      0
      • ? 该用户来自本论坛之外
        ? 该用户来自本论坛之外
        游客
        写于 最后由 编辑
        #1895

        @ChatGPT 我要做一个纯后端的API接口项目,用于学生信息的增删改查,用到的框架是FastAPI,使用的模块有sqlalchemy、pydantic、logging,请帮我列出合理的目录结构及文件,并给出目录和文件的注释,谢谢

        ChatGPTC 1 条回复 最后回复
        0
        • ? 游客

          @ChatGPT 我要做一个纯后端的API接口项目,用于学生信息的增删改查,用到的框架是FastAPI,使用的模块有sqlalchemy、pydantic、logging,请帮我列出合理的目录结构及文件,并给出目录和文件的注释,谢谢

          ChatGPTC 离线
          ChatGPTC 离线
          ChatGPT
          写于 最后由 编辑
          #1896

          guest说:

          我要做一个纯后端的API接口项目,用于学生信息的增删改查,用到的框架是FastAPI,使用的模块有sqlalchemy、pydantic、logging,请帮我列出合理的目录结构及文件,并给出目录和文件的注释,谢谢

          !

          该项目的目录结构及文件如下:

          ├─ app  # 存放业务逻辑代码
          │  ├─ models  # 数据库模型定义
          │  │  ├─ student.py  # 学生表定义
          │  │  └─ ...  # 其他数据库模型定义
          │  ├─ views  # 视图函数
          │  │  ├─ student.py  # 学生信息相关视图函数
          │  │  └─ ...  # 其他相关视图函数
          │  ├─ schemas  # 模型验证
          │  │  ├─ student.py  # 学生信息数据结构验证
          │  │  └─ ...  # 其他模型验证 
          │  └─ __init__.py  # 初始化模块
          ├─ config  # 配置文件
          │  ├─ app.py  # 项目配置
          │  └─ db.py  # 数据库配置
          ├─ tests  # 测试文件
          │  ├─ test_student.py  # 学生信息接口测试
          │  └─ ...  # 其他接口测试
          ├─ main.py  # 入口文件
          └─ requirements.txt  # 依赖文件
          

          帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

          1 条回复 最后回复
          0
          • 5 离线
            5 离线
            502659689
            写于 最后由 编辑
            #1897

            @ChatGPT 中国最好的手机游戏是?

            ChatGPTC 1 条回复 最后回复
            0
            • 5 502659689

              @ChatGPT 中国最好的手机游戏是?

              ChatGPTC 离线
              ChatGPTC 离线
              ChatGPT
              写于 最后由 编辑
              #1898

              502659689说:

              中国最好的手机游戏是?

              目前中国最受欢迎的手机游戏有:《王者荣耀》、《荒野行动》、《绝地求生》、《风暴英雄》、《和平精英》、《火力联盟》等。

              帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

              1 条回复 最后回复
              0
              • 5 离线
                5 离线
                502659689
                写于 最后由 编辑
                #1899

                @ChatGPT ppt高级技巧

                ChatGPTC 1 条回复 最后回复
                0
                • 5 502659689

                  @ChatGPT ppt高级技巧

                  ChatGPTC 离线
                  ChatGPTC 离线
                  ChatGPT
                  写于 最后由 编辑
                  #1900

                  502659689说:

                  ppt高级技巧

                  1、操作平滑:鼠标拖拽,滚轮缩放,键盘快捷键,更多操作体验。

                  2、插入动画:插入幻灯片动画,添加动画效果,让PPT更加生动有趣。

                  3、添加媒体内容:插入视频、音频、图片,使用多媒体内容丰富PPT内容。

                  4、更改模版:更改模版,更改幻灯片背景,让PPT更加符合主题。

                  5、添加图表:插入折线图、柱状图、饼状图等,展示数据更直观。

                  6、添加链接:添加链接,可以在PPT中添加网页链接,让观众更容易获得额外信息。

                  帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                  1 条回复 最后回复
                  0
                  • 5 离线
                    5 离线
                    502659689
                    写于 最后由 编辑
                    #1901

                    @ChatGPT word如何群发邮件?

                    ChatGPTC 1 条回复 最后回复
                    0
                    • 5 502659689

                      @ChatGPT word如何群发邮件?

                      ChatGPTC 离线
                      ChatGPTC 离线
                      ChatGPT
                      写于 最后由 编辑
                      #1902

                      502659689说:

                      word如何群发邮件?

                      Step 1: Compose a message.
                      Step 2: Select the recipients.
                      Step 3: Click the “Send” button.

                      帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                      1 条回复 最后回复
                      0
                      • ? 该用户来自本论坛之外
                        ? 该用户来自本论坛之外
                        游客
                        写于 最后由 编辑
                        #1903

                        @ChatGPT FastAPI单元测试讲解实例,以学生管理为例

                        ChatGPTC 1 条回复 最后回复
                        0
                        • ? 游客

                          @ChatGPT FastAPI单元测试讲解实例,以学生管理为例

                          ChatGPTC 离线
                          ChatGPTC 离线
                          ChatGPT
                          写于 最后由 编辑
                          #1904

                          guest说:

                          FastAPI单元测试讲解实例,以学生管理为例

                          目录

                          • 1、准备工作
                          • 2、编写测试代码
                            • 2.1 测试获取学生列表
                            • 2.2 测试创建学生
                            • 2.3 测试更新学生信息
                            • 2.4 测试删除学生
                          • 3、编写测试执行程序

                          1、准备工作

                          在开始编写测试代码之前,我们需要准备一些必要的工作:

                          • 安装pytest

                            要进行FastAPI的单元测试,我们需要安装pytest,它是一款功能强大的Python测试框架,支持测试用例的编写、执行以及结果的收集,所以我们需要先安装它:

                            $ pip install pytest
                            
                          • 安装uvicorn

                            uvicorn是一款异步非阻塞的Python Web服务器,它支持ASGI协议,所以我们可以使用它来启动我们的FastAPI应用,并用于进行测试:

                            $ pip install uvicorn
                            
                          • 编写FastAPI应用

                            为了方便讲解,我们编写一个简单的学生管理的FastAPI应用:

                            # main.py
                            from typing import List
                            from fastapi import FastAPI, Depends, HTTPException
                            from pydantic import BaseModel
                            
                            
                            class Student(BaseModel):
                                name: str
                                age: int
                                gender: str
                            
                            
                            students = [
                                {
                                    "name": "Bob",
                                    "age": 20,
                                    "gender": "male"
                                },
                                {
                                    "name": "Alice",
                                    "age": 18,
                                    "gender": "female"
                                }
                            ]
                            
                            
                            app = FastAPI()
                            
                            
                            @app.get("/students/")
                            async def get_students():
                                return students
                            
                            
                            @app.post("/students/")
                            async def create_student(student: Student):
                                students.append(student.dict())
                                return student
                            
                            
                            @app.put("/students/{name}")
                            async def update_student(name: str, student: Student):
                                for index, item in enumerate(students):
                                    if item["name"] == name:
                                        students[index] = student.dict()
                                        break
                                else:
                                    raise HTTPException(status_code=404, detail="Student not found")
                                return student
                            
                            
                            @app.delete("/students/{name}")
                            async def delete_student(name: str):
                                for index, item in enumerate(students):
                                    if item["name"] == name:
                                        del students[index]
                                        break
                                else:
                                    raise HTTPException(status_code=404, detail="Student not found")
                                return {"msg": "delete success"}
                            

                          2、编写测试代码

                          2.1 测试获取学生列表

                          首先,我们来测试获取学生列表的接口,编写测试用例:

                          # test_main.py
                          import json
                          from typing import List
                          
                          import pytest
                          import requests
                          
                          from main import app
                          
                          
                          @pytest.fixture(scope="module")
                          def test_client():
                              test_client = app.test_client()
                              return test_client
                          
                          
                          def test_get_students(test_client):
                              response = test_client.get("/students/")
                              data = json.loads(response.data)
                              assert len(data) == 2
                              students = [
                                  {
                                      "name": "Bob",
                                      "age": 20,
                                      "gender": "male"
                                  },
                                  {
                                      "name": "Alice",
                                      "age": 18,
                                      "gender": "female"
                                  }
                              ]
                              assert data == students
                          

                          测试用例:

                          • 先通过pytest.fixture定义一个fixture,用于创建一个FastAPI的客户端,用于发送测试请求;
                          • 然后编写测试函数,函数参数为上面定义的fixture,这样pytest就会自动执行fixture,将它的返回值传入测试函数;
                          • 通过客户端发送GET请求,验证返回结果是否正确。

                          2.2 测试创建学生

                          接下来,我们来测试创建学生的接口,编写测试用例:

                          # test_main.py
                          import json
                          
                          import pytest
                          
                          from main import app
                          
                          
                          @pytest.fixture(scope="module")
                          def test_client():
                              test_client = app.test_client()
                              return test_client
                          
                          
                          def test_create_student(test_client):
                              # 构造数据
                              data = {
                                  "name": "Tom",
                                  "age": 20,
                                  "gender": "male"
                              }
                              # 发送请求
                              response = test_client.post("/students/", json=data)
                              # 验证结果
                              assert response.status_code == 200
                              data = json.loads(response.data)
                              assert data == data
                          

                          测试用例:

                          • 通过pytest.fixture定义一个fixture,用于创建一个FastAPI的客户端;
                          • 编写测试函数,函数参数为上面定义的fixture;
                          • 构造测试数据;
                          • 通过客户端发送POST请求;
                          • 验证返回结果是否正确。

                          2.3 测试更新学生信息

                          接下来,我们来测试更新学生信息的接口,编写测试用例:

                          # test_main.py
                          import json
                          
                          import pytest
                          
                          from main import app
                          
                          
                          @pytest.fixture(scope="module")
                          def test_client():
                              test_client = app.test_client()
                              return test_client
                          
                          
                          def test_update_student(test_client):
                              # 构造数据
                              data = {
                                  "name": "Bob",
                                  "age": 21,
                                  "gender": "male"
                              }
                              # 发送请求
                              response = test_client.put("/students/Bob", json=data)
                              # 验证结果
                              assert response.status_code == 200
                              data = json.loads(response.data)
                              assert data == data
                          

                          测试用例:

                          • 通过pytest.fixture定义一个fixture,用于创建一个FastAPI的客户端;
                          • 编写测试函数,函数参数为上面定义的fixture;
                          • 构造测试数据;
                          • 通过客户端发送PUT请求;
                          • 验证返回结果是否正确。

                          2.4 测试删除学生

                          最后,我们来测试删除学生的接口,编写测试用例:

                          # test_main.py
                          import json
                          
                          import pytest
                          
                          from main import app
                          
                          
                          @pytest.fixture(scope="module")
                          def test_client():
                              test_client = app.test_client()
                              return test_client
                          
                          
                          def test_delete_student(test_client):
                              # 发送请求
                              response = test_client.delete("/students/Bob")
                              # 验证结果
                              assert response.status_code == 200
                              data = json.loads(response.data)
                              assert data == {"msg": "delete success"}
                          

                          测试用例:

                          • 通过pytest.fixture定义一个fixture,用于创建一个FastAPI的客户端;
                          • 编写测试函数,函数参数为上面定义的fixture;
                          • 通过客户端发送DELETE请求;
                          • 验证返回结果是否正确。

                          3、编写测试执行程序

                          帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                          1 条回复 最后回复
                          0
                          • ? 该用户来自本论坛之外
                            ? 该用户来自本论坛之外
                            游客
                            写于 最后由 编辑
                            #1905

                            @ChatGPT 举例讲解下FastAPI的单元测试,以学生信息管理为例,举例讲解下原理和使用方法

                            ChatGPTC 1 条回复 最后回复
                            0
                            • ? 游客

                              @ChatGPT 举例讲解下FastAPI的单元测试,以学生信息管理为例,举例讲解下原理和使用方法

                              ChatGPTC 离线
                              ChatGPTC 离线
                              ChatGPT
                              写于 最后由 编辑
                              #1906

                              guest说:

                              举例讲解下FastAPI的单元测试,以学生信息管理为例,举例讲解下原理和使用方法

                              1. 单元测试的原理:

                              单元测试是指分离的测试,它的目的是检查每个独立的单元是否正确工作,单元测试可以帮助检测单元之间的相互依赖,从而确保程序的稳定性和正确性。

                              1. 使用FastAPI进行单元测试:

                              (1)安装pytest,并在项目根目录创建 tests/ 目录;

                              (2)在 tests/ 目录下创建一个 test_students.py 文件,用来编写学生信息管理的测试用例;

                              (3)使用 pytest 在 tests/ 目录下执行 test_students.py 文件,检查测试用例是否正确;

                              (4)如果测试用例通过,则代表学生信息管理的功能是正常工作的。

                              帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                              1 条回复 最后回复
                              0
                              • ? 该用户来自本论坛之外
                                ? 该用户来自本论坛之外
                                游客
                                写于 最后由 编辑
                                #1907

                                我想知道俄乌战争近况

                                1 条回复 最后回复
                                0
                                • ? 该用户来自本论坛之外
                                  ? 该用户来自本论坛之外
                                  游客
                                  写于 最后由 编辑
                                  #1908

                                  能问医疗方面的知识吗

                                  ? 1 条回复 最后回复
                                  0
                                  • ? 游客

                                    能问医疗方面的知识吗

                                    ? 该用户来自本论坛之外
                                    ? 该用户来自本论坛之外
                                    游客
                                    写于 最后由 编辑
                                    #1909

                                    游客 说:

                                    能问医疗方面的知识吗

                                    1 条回复 最后回复
                                    0
                                    • ? 该用户来自本论坛之外
                                      ? 该用户来自本论坛之外
                                      游客
                                      写于 最后由 编辑
                                      #1910

                                      @ChatGPT 你懂医疗方面的知识吗?

                                      ChatGPTC ? 2 条回复 最后回复
                                      0
                                      • ? 游客

                                        @ChatGPT 你懂医疗方面的知识吗?

                                        ChatGPTC 离线
                                        ChatGPTC 离线
                                        ChatGPT
                                        写于 最后由 编辑
                                        #1911

                                        guest说:

                                        你懂医疗方面的知识吗?

                                        不太懂,但可以学习。

                                        帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                                        1 条回复 最后回复
                                        0
                                        • ? 游客

                                          @ChatGPT 你懂医疗方面的知识吗?

                                          ? 该用户来自本论坛之外
                                          ? 该用户来自本论坛之外
                                          游客
                                          写于 最后由 编辑
                                          #1912

                                          游客 说:

                                          @ChatGPT 你懂医疗方面的知识吗?

                                          1 条回复 最后回复
                                          0
                                          回复
                                          • 在新帖中回复
                                          登录后回复
                                          • 从旧到新
                                          • 从新到旧
                                          • 最多赞同


                                          • 1
                                          • 2
                                          • 430
                                          • 431
                                          • 432
                                          • 433
                                          • 434
                                          • 576
                                          • 577
                                          Popular Topics - 热门主题
                                          • Bug! Bug !Google One 学生优惠 可无门槛验证
                                            mztcM
                                            mztc
                                            3
                                            14
                                            4.8k

                                          • MySQL 8.0 OCP 限时免费考
                                            HebutMrLiuH
                                            HebutMrLiu
                                            1
                                            5
                                            201

                                          • 阿里云国际站轻量应用服务器 2C+1G+200M带宽 仅9.9美元一年!
                                            T
                                            Test
                                            1
                                            4
                                            1.0k

                                          • <海外剧>行尸走肉:死城 第二季[2025][惊悚 恐怖 冒险][附行尸走肉 系列全部]
                                            我是小马甲~M
                                            我是小马甲~
                                            1
                                            3
                                            23

                                          • 京东冲100明天送一张25-20外卖卷
                                            我是小马甲~M
                                            我是小马甲~
                                            1
                                            2
                                            660

                                          • giffgaff免流教程
                                            建军建
                                            建军
                                            1
                                            2
                                            574

                                          • 登录

                                          • 没有帐号? 注册

                                          • 登录或注册以进行搜索。
                                          百度网盘
                                          1,173 个主题
                                          连续剧
                                          698 个主题
                                          国产剧
                                          564 个主题
                                          美剧
                                          338 个主题
                                          中国移动
                                          307 个主题
                                          动画片
                                          231 个主题
                                          中国电信
                                          222 个主题
                                          动作片
                                          206 个主题

                                          166

                                          在线

                                          39.9k

                                          用户

                                          40.1k

                                          主题

                                          110.4k

                                          帖子
                                          • 第一个帖子
                                            最后一个帖子