Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

103
Visualizações
cómo crear una solicitud de publicación usando api rápido y sqlalchemy mientras se trabaja con una restricción de clave externa

Esta es la primera vez que uso FastApi el marco de Python, y estoy tratando de entender cómo configurar correctamente mis tablas y la lógica para poder realizar una solicitud posterior que cree una instancia de la tabla que tiene la clave externa.

modelos.py

 class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) first_name = Column(Text, nullable=False) last_name = Column(Text, nullable=False) class Post(Base): __tablename__ = "posts" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=False)

esquemas.py

 class UserBase(BaseModel): name: str class Posts(BaseModel): id: int user_id: int class Config: orm_mode = True class User(UserBase): id: int class Config: orm_mode = True

repositorio.py

 def create_post(db: Session, user_id: int, post: schemas.Post): get_user_id = db.query(models.User).filter(models.User.id == user_id).first() post = models.Post( id=post.id, user_id=get_user_id.id, ) db.add(post) db.commit() db.refresh(post) return post

punto final

 router = APIRouter() @router.post("/posts.", response_model=Post) async def create_post(user_id, post: Post, db): return repository.create_post(db=db, user_id=user_id, post=post)

Interfaz

 try { const url = "http://localhost:8000/posts"; const data = {"user_id": 2}; const response = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(data) }) ...

El user_id probado anteriormente en el front-end existe en la base de datos y el punto final para crear un usuario funciona bien, pero solo el que crea una post que pertenece a un usuario específico no funciona, devuelve un 422 (Unprocessable Entity)

¿Hay algo que estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Su punto final actualmente requiere 2 cosas: un user_id de usuario y datos de un esquema de Post . (También solicita db que no sé cómo administra su acceso a su db) ( create_post(user_id, post: Post, db) )

Por lo tanto, su cuerpo debe contener los valores de Publicación, a saber: id y user_id . En este punto, nos damos cuenta de que pregunta dos veces en su punto final user_id . Por lo tanto, puede eliminar su primer user_id de usuario de su punto final, ya que está incluido en su esquema de Post .

En el front-end, sus data contienen solo un dato: {"user_id": 2} . Falta el valor de id que se solicita a través de su esquema de Post . Entonces, dado que falta un dato, se genera un error 422.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda