小编sam*_*mba的帖子

在 FASTAPI 中提供身份验证的好方法是什么?

为 API 提供身份验证的最佳方式是什么?我读到了有关身份验证的内容,给出了一种为每个函数编写 user: str = Depends(get_current_user) 的方法。我不认为这是编写身份验证的好方法。我们可以为其编写一个中间件,并添加一个 userid 到 request 对象,以便我们可以在 API 请求处理中使用它。如果有人已经写了,你能把中间件发给我吗?

authentication fastapi

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

如何在 FastAPI 中将字典列表作为 Body 参数发送?

在 FastAPI 中传递字典列表,一般我们会定义一个 pydantic 模式,并会提到

param: List[schema_model]
Run Code Online (Sandbox Code Playgroud)

我面临的问题是我有文件要附加到我的请求中。我找不到在路由器功能中定义架构和文件上传的方法。为此,我将所有参数(请求正文)定义为正文参数,如下所示。

@router.post("/", response_model=DataModelOut)
async def create_policy_details(request:Request,
    countryId: str = Body(...),
    policyDetails: List[dict] = Body(...),
    leaveTypeId: str = Body(...),
    branchIds: List[str] = Body(...),
    cityIds: List[str] = Body(...),
    files: List[UploadFile] = File(None)
    ):
Run Code Online (Sandbox Code Playgroud)

当我使用 postman 的 form-data 选项发送请求时,它为 policyDetails 参数显示“0:value is not a valid dict”。我正在发送 [{"name":"name1","department":"d1"}]。它说不是有效的字典,即使我发送有效的字典。谁可以帮我这个事?DataModelOut 类

class DataModelOut(BaseModel):
    message: str = ""
    id: str = ""
    input_data: dict = None
    result: List[dict] = []
    statusCode: int
Run Code Online (Sandbox Code Playgroud)

python dictionary list fastapi

8
推荐指数
3
解决办法
9073
查看次数

FastAPI 中如何防止 html 注入?

我们正在使用名为 FastAPI 的 Python 框架开发 REST API。html 注入代码安全测试失败。他们在 post 有效负载中发送一些 html 标签代码,我们将其插入到数据库中并在 GET 响应中发送相同的代码。在 FastAPI 中处理请求时,有什么方法可以防止这种 HTML 注入。

python html-injections fastapi

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

Kubernetes 服务保持挂起状态

暴露部署后服务显示挂起状态。

packet@ubuntu:/home/gss$ kubectl get services
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP          22h
wms1         LoadBalancer   10.106.19.103   <pending>     8000:32461/TCP   17h
Run Code Online (Sandbox Code Playgroud)

安装了带有 1 个主节点和 4 个工作节点的 kubeadm。使用以下命令创建部署:

sudo docker run -p 8000:8000 w1
Run Code Online (Sandbox Code Playgroud)

这里 w1 是我的图像名称。

使用以下命令创建服务:

kubectl expose deployment wms1 --type=LoadBalancer --port=8000
Run Code Online (Sandbox Code Playgroud)

service status kubernetes

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

如何验证pydantic模型的多个领域

我想验证pydantic模型的三个模型字段。为此,我正在从 pydantic 导入 root_validator。低于错误。我在https://pydantic-docs.helpmanual.io/usage/validators/#root-validators 中找到了这个。任何人都可以帮助我。找出下面的错误。from pydantic import BaseModel, ValidationError, root_validator Traceback (最近一次调用): File "", line 1, in ImportError: cannot import name 'root_validator' from 'pydantic' (C:\Users\Lenovo\AppData\Local\Programs\ Python\Python38-32\lib\site-packages\pydantic__init__.py)

我试过

@validator
def validate_all(cls,v,values,**kwargs):
Run Code Online (Sandbox Code Playgroud)

我从一些常见的字段父模型继承了我的 pydantic 模型。仅显示父类字段的值,但不显示我的子类字段。例如

class Parent(BaseModel):
    name: str
    comments: str
class Customer(Parent):
    address: str
    phone: str

    @validator
    def validate_all(cls,v,values, **kwargs):
         #here values showing only (name and comment) but not address and phone.
Run Code Online (Sandbox Code Playgroud)

python validation pydantic

5
推荐指数
4
解决办法
5768
查看次数

赋值和参数传递有什么不同?

我可以在python中分配这样的序列:

a,b,c="ABC"
Run Code Online (Sandbox Code Playgroud)

但我无法将此序列作为参数传递给函数.即

def function2(a,b,c):
    print a
    print b
    print c
function2("ABC")
Run Code Online (Sandbox Code Playgroud)

上述声明引发了错误.

任何人都可以告诉我在python中传递赋值和参数之间的区别吗?

python variable-assignment

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