小编Raj*_*eer的帖子

FastAPI - Pydantic - 值错误引发内部服务器错误

我正在将 FastAPI 与 Pydantic 结合使用。

我的问题 - 我需要使用 Pydantic 引发 ValueError

from fastapi import FastAPI
from pydantic import BaseModel, validator
from fastapi import Depends, HTTPException

app = FastAPI()

class RankInput(BaseModel):

    rank: int

    @validator('rank')
    def check_if_value_in_range(cls, v):
        """
        check if input rank is within range
        """
        if not 0 < v < 1000001:

            raise ValueError("Rank Value Must be within range (0,1000000)")
            #raise HTTPException(status_code=400, detail="Rank Value Error") - this works But I am looking for a solution using ValueError
        return v

def …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pydantic fastapi

17
推荐指数
2
解决办法
3万
查看次数

Python - 如何在不阻塞线程的情况下使用 FastAPI 和 uvicorn.run?

我正在寻找将 uvicorn.run() 与 FastAPI 应用程序一起使用但没有 uvicorn.run() 阻塞线程的可能性。我已经尝试使用进程、子进程和线程,但没有任何效果。我的问题是我想从另一个进程启动服务器,该进程在启动服务器后应该继续执行其他任务。另外,我在从另一个进程关闭服务器时遇到了问题。

有没有人知道如何使用 uvicorn.run() 非阻塞以及如何从另一个进程中阻止它?

问候 LeukoClassic

python multiprocessing fastapi uvicorn

7
推荐指数
2
解决办法
8254
查看次数

选择最短和最长的字符串

是否可以按表中的字符选择最短和最长的字符串?

我有一CITY列类型VARCHAR(20),我想按长度的字母顺序选择最短和最长的城市名称。

我喜欢这个

SELECT CITY,LENGTH(CITY) FROM STATION WHERE LENGTH(CITY) IN ( SELECT MAX(LENGTH(CITY)) FROM STATION UNION SELECT MIN(LENGTH(CITY)) FROM STATION ) ORDER BY CITY ASC;

按字母顺序排列时,让城市名称列为 ABC、DEF、PQRS 和 WXY,长度分别为 3、3、4 和 3。命名最长的城市显然是 PQRS,但也有最短的选项-命名城市;我必须选择 ABC,因为它按字母顺序排在第一位。

我的查询最终以长度为 3 的所有三个 CITY 结束。

ABC 3 DEF 3 PQRS 4 WXY 3

SELECT 的结果必须是

ABC 3 PQRS 4

mysql sql

5
推荐指数
2
解决办法
2万
查看次数

Pydantic - 验证没有发生

我对使用 Pydantic 还很陌生。

我现在面临的问题是,当值超出范围时,下面的模型不会引发预期异常。

例如,如果将 -1 传递到此模型中,理想情况下它应该引发 HTTPException。但什么也没发生

我不确定我可能哪里出错了。

任何建议都会很棒。

class GetInput:
    """
    for the fields endpoint
    """

    def __init__(self,
                 rank: Optional[int] = None,
                 interval: Optional[int] = None):

        self.rank = rank
        self.interval = interval

    @validator('rank')
    def check_if_rank_in_range(cls, v):
        """
        check if input rank is within range
        """
        if not 0 < v < 1000001:

            raise HTTPException(
                status_code=400, detail="Rank Value Must be within range (0,1000000)")
        return v

    @validator('interval')
    def check_if_interval_in_range(cls, v):
        """
        check if input rank is within range
        """
        if …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pydantic fastapi

5
推荐指数
1
解决办法
1万
查看次数

如何在模型中引发 HTTP 400?

我的路线:

@router.get('/check/{value}', status_code=200)
def ranks_check(value: BasicInput = Depends()):
    """
    Test endpoint
    """

    return value
Run Code Online (Sandbox Code Playgroud)

我的型号:

class BasicInput:
    """
    Get Confidence to score Input class
    """

    value: int

    @validator('value')
    def check_if_value_in_range(cls, v):
        if not 0 < v < 1000001:
            raise ValueError('Value Exceeded Limit')
Run Code Online (Sandbox Code Playgroud)

我需要做什么:

我需要验证输入并在出现 ValueError 时引发 HTTP 400。

我知道我可以使用 Pydantic 的类型完成整数验证,并在路由函数本身中Field进行运行。check_if_value_in_range我正在寻找使用该模型的解决方案。

python python-3.x pydantic fastapi

3
推荐指数
1
解决办法
4231
查看次数

如何在torchscript中使用自定义python对象

我准备将 pytorch 模块转换为 ScriptModule,然后在 c++ 中加载它?但是我被这个错误阻止了This attribute exists on the Python module, but we failed to convert Python type: 'Vocab' to a TorchScript type,这Vocab是我定义的一个 python 对象。演示代码在这里:

import torch
class Vocab(object):
    def __init__(self, name):
        self.name = name

    def show(self):
        print("dict:" + self.name)

class Model(torch.nn.Module):
    def __init__(self, ):
        super(Model, self).__init__()
        self.layers = torch.nn.Linear(2, 3)
        self.encoder = 4
        self.vocab = Vocab("vocab")

    def forward(self, x):
        name = self.vocab.name
        print("forward show encoder:" + str(self.encoder))
        print("vocab:" + name)
        enc_hidden = []
        step …
Run Code Online (Sandbox Code Playgroud)

python jit pytorch torchscript

2
推荐指数
1
解决办法
1686
查看次数