我的GET端点收到一个需要满足以下条件的查询参数:
int0 和 10 之间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) 在 bash 中,可以使用以下命令创建一个空文件:
> empty_file.txt
Run Code Online (Sandbox Code Playgroud)
在 zsh 中,同样的命令卡住了,需要停止。尽管如此,文件还是会被创建。
我想知道是什么导致了这种行为和/或如何使它类似于 bash?
编辑:错别字。
我有一个每日 bash 过程,需要每天使用新密码。
为了避免处理特殊字符,我使用两个变量乘积的 MD5 生成密码$RANDOM:
md5sum <<< $(($RANDOM * $RANDOM))
Run Code Online (Sandbox Code Playgroud)
我的想法是:因为$RANDOM生成一个 0 到 32,767 之间的随机整数,然后生成两个随机整数并将它们相乘将搜索空间增加到 32,767^2 = 1,071,711,169
我不是安全专家,所以我很好奇我的方法是否相当安全,如果不是,更好的方法是什么?
我使用的地图允许在地图上选择边界框并返回(纬度、经度)的右上角和左下角。
我正在使用 couchbase 地理空间查询,它们只支持 top_left bottom_right 坐标。
将矩形的两个对角的纬度和经度值从top_right bottom_left 转换为top_left bottom_right 的公式是什么?