小编ooo*_*ooo的帖子

使用 pydatinc 对 FastAPI 的查询参数进行自定义验证会导致内部服务器错误

我的GET端点收到一个需要满足以下条件的查询参数:

  1. 介于int0 和 10 之间
  2. 是偶数

1.直接使用Query(gt=0, lt=10). 但是,我不清楚如何扩展Query以进行额外的自定义验证,例如2.. 该文档最终导致了 pydantic。但是,当第二次验证失败时,我的应用程序遇到内部服务器错误2.

下面是一个最小范围的示例

from fastapi import FastAPI, Depends, Query
from pydantic import BaseModel, ValidationError, validator

app = FastAPI()

class CommonParams(BaseModel):
    n: int = Query(default=..., gt=0, lt=10)

    @validator('n')
    def validate(cls, v):
        if v%2 != 0:
            raise ValueError("Number is not even :( ")
        return v


@app.get("/")
async def root(common: CommonParams = Depends()):
    return {"n": common.n}
Run Code Online (Sandbox Code Playgroud)

以下是按预期工作的请求和失败的请求:

# requsts that work …
Run Code Online (Sandbox Code Playgroud)

python exception valueerror pydantic fastapi

6
推荐指数
1
解决办法
1724
查看次数

在 bash 中创建空文件的简写在 zsh 中无法正常工作

在 bash 中,可以使用以下命令创建一个空文件:

> empty_file.txt
Run Code Online (Sandbox Code Playgroud)

在 zsh 中,同样的命令卡住了,需要停止。尽管如此,文件还是会被创建。

我想知道是什么导致了这种行为和/或如何使它类似于 bash?

编辑:错别字。

linux macos bash zsh io-redirection

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

bash 生成不带特殊字符的安全密码

我有一个每日 bash 过程,需要每天使用新密码。

为了避免处理特殊字符,我使用两个变量乘积的 MD5 生成密码$RANDOM

md5sum <<< $(($RANDOM * $RANDOM))
Run Code Online (Sandbox Code Playgroud)

我的想法是:因为$RANDOM生成一个 0 到 32,767 之间的随机整数,然后生成两个随机整数并将它们相乘将搜索空间增加到 32,767^2 = 1,071,711,169

我不是安全专家,所以我很好奇我的方法是否相当安全,如果不是,更好的方法是什么?

linux security random passwords bash

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

如何将地理空间坐标从右上角、左下角转换为左上角和右下角

我使用的地图允许在地图上选择边界框并返回(纬度、经度)的右上角和左下角。

我正在使用 couchbase 地理空间查询,它们只支持 top_left bottom_right 坐标。

将矩形的两个对角的纬度和经度值从top_right bottom_left 转换为top_left bottom_right 的公式是什么?

gps geospatial couchbase

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