Interpretación de documentos oficiales FastAPI (2)
Usar Field() funciona bien para nuestras necesidades.
Etiqueta: Lista = [] indica verificación de lista ordinaria. Si queremos un tipo unificado (como una matriz), podemos usar una lista de tipos para representarlo, por ejemplo, etiquetas: Lista[str]=[].
Dijiste que necesitas que los datos no se repitan, por lo que también puedes probar set y usar Set en la escritura para representar la etiqueta: Set[str] = Set().
También puedes utilizar un modelo como tipo de campo en otro modelo. Esto también es muy común.
Pydantic proporciona algunos tipos especiales definidos para facilitar la verificación de diversos contenidos.
UrlStr es un tipo predeterminado que puede verificar URL legales.
Si quieres que el JSON esté en el cuerpo, la capa más externa es una lista. Luego debe definir los tipos en los parámetros de la siguiente manera.
Además de Model, también puedes usar dict para recibir Body.
Los diccionarios pueden aceptar esta forma de anotación de tipo. Por supuesto, JSON no admite claves de tipo int, así que no te preocupes, fastapi lo convertirá automáticamente.
defread_items(*, ads_ID: str = Cookie(none)): Los parámetros de las cookies se pueden declarar de la siguiente manera. El primer valor es el valor predeterminado.
defread_items(*, user_agent: str = Header(none)): Puede recibir parámetros en el encabezado. Si un campo en el encabezado tiene varios valores, puede usar defread_items(x_token:list[str]=Header(none)): este formulario.
Para esta parte, consulte la explicación anterior del código fuente de fastapi.
Se proporciona el modelo de Pydantic. Método dict(), que puede exportar campos como un diccionario. Esto permite la conversión entre modelos. Por ejemplo:
La única diferencia entre estos dos modelos es la contraseña, la definición de usuario debe ser de la siguiente forma.
Mientras que la exportación de UserOut usando dict() puede tomar la siguiente forma.
Solo necesitamos user_in = usuario in (* * user_out. dict(), contraseña="secret") para lograr el efecto.
Por el contrario, UserOut ignorará los parámetros redundantes en el dictado de UserIn.
Union [elemento plano, CarItem] ofrece más opciones de respuesta. También se permiten cosas como Response_model = List[Item].
=Form(...), que hereda de Body y tiene el mismo uso.