Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

373
Views
cómo funciona el modelo pydantic sin instanciar clases pydantic

¿Alguien puede decirme cómo funciona el código del modelo pydantic a continuación sin instanciar el objeto de clase UserIn y UserOut? ¿Es esto algo manejado internamente por la biblioteca pydantic?

 from typing import Optional from fastapi import FastAPI from pydantic import BaseModel, EmailStr app = FastAPI() class UserIn(BaseModel): username: str password: str email: EmailStr full_name: Optional[str] = None class UserOut(BaseModel): username: str email: EmailStr full_name: Optional[str] = None class UserInDB(BaseModel): username: str hashed_password: str email: EmailStr full_name: Optional[str] = None def fake_password_hasher(raw_password: str): return "supersecret" + raw_password def fake_save_user(user_in: UserIn): hashed_password = fake_password_hasher(user_in.password) user_in_db = UserInDB(**user_in.dict(), hashed_password=hashed_password) print("User saved! ..not really") return user_in_db @app.post("/user/", response_model=UserOut) async def create_user(user_in: UserIn): user_saved = fake_save_user(user_in) print(user_saved.__dict__) return user_saved
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No necesita instanciar los objetos en su código porque FastAPI los crea automáticamente para esquemas dinámicos en ambos casos.

Para los argumentos de los métodos de punto final que son modelos de Pydantic como user_in: UserIn en su ejemplo, se interpreta como un cuerpo de solicitud, como se explica en los documentos aquí . Vale la pena señalar la explicación sobre cómo funciona el enlace de datos de entrada para los parámetros de punto final en la documentación de FastAPI :

  • Si el parámetro también se declara en la ruta, se utilizará como parámetro de ruta.
  • Si el parámetro es de un tipo singular (como int, float, str, bool, etc.) se interpretará como un parámetro de consulta.
  • Si se declara que el parámetro es del tipo de un modelo Pydantic, se interpretará como un cuerpo de solicitud.

Para la salida del punto final, cuando defina el modelo de response_model , también lo convertirá, como se explica en la documentación aquí :

FastAPI utilizará este modelo de respuesta para:

  • Convierta los datos de salida a su declaración de tipo.
  • Validar los datos.
  • Agregue un esquema JSON para la respuesta, en la operación de ruta de OpenAPI.
  • Será utilizado por los sistemas automáticos de documentación.
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!