相关疑难解决方法(0)

正则表达式验证美国电话号码?

可能重复:
用于电话号码验证的全面正则表达式
使用JavaScript验证电话号码

我正在尝试写一个正则表达式来验证美国电话号码的格式(123)123-1234 - 真123-123-1234 - 是的

其他一切都无效.

我想出了类似的东西

 ^\(?([0-9]{3}\)?[-]([0-9]{3})[-]([0-9]{4})$
Run Code Online (Sandbox Code Playgroud)

但这证实了,123)-123-1234(123-123-1234

这是不对的.

javascript regex

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

基于GB的正则表达式,仅限数字电话号码

我想要一个正则表达式代码,它只允许数字电话号码(例如1234567890)以及GB格式号码(例如123-456-7890).

该表达式必须适用于这两种情况.

目前我正在使用下面的正则表达式,只允许GB电话号码

/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/ 
Run Code Online (Sandbox Code Playgroud)

我还需要帮助才允许数字编号.

regex validation cakephp

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

如何在 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 模型的条件调用

我有一个连接到 MongoDB 的多语言 FastAPI。我在 MongoDB 中的文档以两种可用语言复制,并以这种方式构建(简化示例):

\n
\n{\n  "_id": xxxxxxx,\n  "en": { \n          "title": "Drinking Water Composition",\n          "description": "Drinking water composition expressed in... with pesticides.",\n          "category": "Water", \n          "tags": ["water","pesticides"] \n         },\n  "fr": { \n          "title": "Composition de l\'eau de boisson",\n          "description": "Composition de l\'eau de boisson exprim\xc3\xa9e en... pr\xc3\xa9sence de pesticides....",\n          "category": "Eau", \n          "tags": ["eau","pesticides"] \n         },  \n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

因此,我实现了两个模型DatasetFR和,每个模型都对每种语言中的特定外部模型 ( )DatasetEN进行引用。Enumcategorytags

\n
class DatasetFR(BaseModel):\n    title:str\n    description: str\n    category: CategoryFR\n    tags: …
Run Code Online (Sandbox Code Playgroud)

python mongodb pydantic fastapi

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

即使其中一个验证器失败,如何检查所有 Pydantic 验证器,然后在 FastAPI 响应中引发多个 ValueError?

是否可以调用所有验证器来获取完整的错误列表?

@validator('password', always=True)
def validate_password1(cls, value):
    password = value.get_secret_value()

    min_length = 8
    if len(password) < min_length:
        raise ValueError('Password must be at least 8 characters long.')

    return value

@validator('password', always=True)
def validate_password2(cls, value):
    password = value.get_secret_value()

    if not any(character.islower() for character in password):
        raise ValueError('Password should contain at least one lowercase character.')

    return value
Run Code Online (Sandbox Code Playgroud)

当前的行为似乎一次调用一个验证器。

我的 Pydantic 课程:

class User(BaseModel):
    email: EmailStr
    password: SecretStr
Run Code Online (Sandbox Code Playgroud)

如果我没有在请求中包含email, 或password, 字段,那么我会在数组中得到两个验证失败,这就是我想要对该字段执行的操作password,但当前的行为似乎调用了一个,如果失败则抛出立即出现错误。

python python-3.x pydantic fastapi

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

如何使用 FastAPI 在 Pydantic 字段中设置范围和超出范围的值?

所以我有以下代码行:

item: Optional[int] = Field(None, ge=1, le=168)
Run Code Online (Sandbox Code Playgroud)

我也希望有可能设定-1价值。因此,我需要排除零值,但我想允许一个值和来自to-1的值。1168

有什么办法可以做到这一点吗?

python range pydantic fastapi

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

使用 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
查看次数

如何在 FastAPI 中使用 Pydantic 模型定义查询参数?

我试图有一个像这样的端点/services?status=New

status将是 New或者Old

这是我的代码:

from fastapi import APIRouter, Depends
from pydantic import BaseModel
from enum import Enum

router = APIRouter()

class ServiceStatusEnum(str, Enum):
    new = "New"
    old = "Old"


class ServiceStatusQueryParam(BaseModel):
    status: ServiceStatusEnum


@router.get("/services")
def get_services(
  status: ServiceStatusQueryParam = Query(..., title="Services", description="my desc"),
):
    pass #my code for handling this route.....
Run Code Online (Sandbox Code Playgroud)

结果是我收到一个似乎与此问题相关的错误

错误说AssertionError: Param: status can only be a request body, using Body()


然后我找到了这里解释的另一个解决方案。

所以,我的代码将是这样的:

from fastapi import APIRouter, Depends
from pydantic …
Run Code Online (Sandbox Code Playgroud)

python openapi pydantic fastapi

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