Python
我在单独的文件中定义了一个WebSocket端点,如下所示: from starlette.endpoints import WebSocketEndpoint from connection_service import ConnectionService class WSEndpoint(WebSocketEndpoint): """Handles Websocket con
..
我想在支持部分更新的FastAPI中实现PUT或补丁请求。The official documentation确实令人困惑,我不知道如何处理该请求。(我不知道items在文档中,因为我的数据将与请求的正文一起传递,而不是硬编码的字典)。 class QuestionSchema(BaseModel): title: str = Field(..., min_length=3, max
..
我正在使用uvicorn和python子进程.POpen运行许多FastAPI实例。我有一个用PySimpleGUI制作的小图形用户界面,我想用它来随意关闭和重新启动服务器。 我遇到的第一个问题是,至少在Windows中,启动uvicorn服务器似乎创建的不是一个而是两个新进程,而调用Popen.terminate()仅关闭其中一个进程,这不会释放与服务器关联的端口。我使用psutil包修复了这
..
我正在使用FastAPI构建一个REST API,我真的很喜欢这个工具,特别是它与Pydatics和OpenAPI的集成。 例如,我可以将端点采用的模型编写为 class Model(BaseModel): field1: str = Field(default=...) field2: int = Field(default=...) field3: List
..
我的代码类似于使用Fast API: class EnumTestT(Enum): test_t_value = 0 object = { test: test_t_value } enum_mapping = { test_t_value: "Test" } def enum_encoder(val: EnumTestT) -> str: retur
..
我有一个Fastapi应用程序,我想记录对它的每个请求。我正在尝试使用loguru和uvicorn来执行此操作,但我不知道如何打印与每个请求相关联的标头和请求参数(如果有)。 我想要这样的东西: INFO 2020-08-13 13:36:33.494 uvicorn.protocols.http.h11_impl:send - 127.0.0.1:52660 - "GET /url
..
FastAPI提供way通过其自身的依赖项解析机制管理依赖项,如数据库连接。 它类似于pytest夹具系统。 简而言之,您在函数签名中声明了所需的内容,FastAPI将调用您提到的函数(或类),并在调用处理程序时注入正确的结果。 是的,它确实进行缓存(在单个处理程序运行期间),但我们不能只使用@lru_cache修饰器并在每次运行时简单地调用这些依赖项来实现相同的功能吗? 我错过了什么吗?
..
我正在尝试将类中的一个字段限制为枚举。然而,当我尝试从类中获取词典时,它不会被转换为字符串。相反,它保留枚举。我检查了pydantic documentation,但找不到与我的问题相关的任何内容。 此代码代表我实际需要的内容。 from enum import Enum from pydantic import BaseModel class S(str, Enum): a
..
FastAPI使用Depends()注入返回或产生的变量。例如,FastAPI/SQL: # Dependency def get_db(): db = SessionLocal() try: yield db finally: db.close() ... def create_user(db: Session = Depends(g
..
我正在尝试在Fastapi中间件中验证令牌,但这似乎是不可能的。正如我所想的那样,中间件需要进行下一次调用,尽管这不是必需的。我找不到任何好的解决方案来在这个python-fast api后端一次性处理令牌。如有任何帮助,我们不胜感激。 @app.middleware("http") async def add_middleware_here(request: Request, call_n
..
所以我需要在类中有一些路由,但是路由方法需要有selfattr(以访问类的属性)。 但是,FastAPI随后假定self是它自己的必需参数,并将其作为查询参数放入 这是我得到的: app = FastAPI() class Foo: def __init__(y: int): self.x = y @app.get("/somewhere")
..
我要解决的问题: 目录的好名称,以便它们的用途明确。 将所有项目文件(包括Viralenv)保存在一个位置,因此我 可以轻松地复制、移动、存档、删除整个项目或估算磁盘 空间使用率。 创建某些选定文件集的多个副本,例如整个 应用程序、存储库或虚拟环境,同时保留 我不想克隆的其他文件。 只需通过rsyncing将正确的文件集部署到服务器 选择了一个目录。 很好地处理了前端和后端。
..
假设函数detect_primes的调用成本很高,我希望避免使用重复的参数重复调用它。我该怎么办? 使用缓存没有任何帮助,因为该函数可能会在不同的请求中被并发调用。当两个请求都看到缓存中没有值时,两个请求都将继续执行开销较大的函数。 def detect_primes(nums: List[int]) -> Dict[int, bool]: """ detect whether a
..
我有两个简单的模型(var1和var2)。PostExample方法的输入可以接收第一个模型或第二个模型的数据。 使用Union有助于解决此问题,但在验证过程中,它会为第一个模型和第二个模型抛出错误。 如何使其在填写字段时出错的情况下,只为某个模型返回验证器错误,而不是同时为两个模型返回?(如果有帮助,则可以通过字段A的长度来区分模型) main.py @app.post("/Pos
..
示例 以下是我尝试上载图像列表的代码: import requests import glob import cv2 path = glob.glob("test_folder/*", recursive=True) # a list of image's path lst_img = [] for p in path[:3]: # img = cv2.imread(p)
..
Models.py class Role(Base): __tablename__='role' role_id = Column(Integer,primary_key=True) role_name = Column(String(20),nullable=False) class User(Base): __tablename__='user'
..
如何正确使用FastAPI路由中的异步功能? 下面的代码片段需要10秒才能完成对我的/home路由的调用,而我预计只需要5秒。 from fastapi import FastAPI import time app = FastAPI() async def my_func_1(): """ my func 1 """ print('Func1 st
..
我希望在FastAPI中使用类似以下内容的架构: from __future__ import annotations from typing import List from pydantic import BaseModel class Project(BaseModel): members: List[User] class User(BaseModel): p
..
我正在使用FastAPI和Pydtic制作一个API。 我希望有一些补丁端点,其中一条记录的1个或N个字段可以一次编辑。此外,我希望客户端仅传递负载中的必需字段。 示例: class Item(BaseModel): name: str description: str price: float tax: float @app.post("/ite
..
假设我有以下观点, from fastapi import FastAPI app = FastAPI() @app.get('/hello/') def hello_world(): return {"msg": "Hello World"} @app.get('/hello/{number}/') def hello_world_number(number: int):
..