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

964
Visualizações
¿Cuáles son las mejores prácticas para estructurar un proyecto FastAPI?

Los problemas que quiero resolver:

  • Buenos nombres de directorios para que quede claro su propósito.
  • Mantener todos los archivos del proyecto (incluido virtualenv) en un solo lugar, para que pueda copiar, mover, archivar, eliminar todo el proyecto o estimar el uso del espacio en disco fácilmente.
  • Crear varias copias de algunos conjuntos de archivos seleccionados, como la aplicación completa, el repositorio o virtualenv, mientras mantengo una sola copia de otros archivos que no quiero clonar.
  • Implementar el conjunto correcto de archivos en el servidor simplemente sincronizando un directorio seleccionado.
  • manejando tanto el frontend como el backend muy bien.
over 4 years ago · Hanz Gallego
1 Respostas
Responde à pergunta

0

Harsha ya mencionó mi generador de proyectos, pero creo que puede ser útil para futuros lectores explicar las ideas detrás de él.

Si va a servir su interfaz, algo como yarn o npm . No debes preocuparte por la estructura entre ellos. Con algo como axios o la búsqueda de Javascript, puede hablar fácilmente con su backend desde cualquier lugar.

Cuando se trata de estructurar el backend, si desea renderizar plantillas con Jinja, puede tener algo parecido a MVC Pattern.

 your_project ├── __init__.py ├── main.py ├── core │ ├── models │ │ ├── database.py │ │ └── __init__.py │ ├── schemas │ │ ├── __init__.py │ │ └── schema.py │ └── settings.py ├── tests │ ├── __init__.py │ └── v1 │ ├── __init__.py │ └── test_v1.py └── v1 ├── api.py ├── endpoints │ ├── endpoint.py │ └── __init__.py └── __init__.py

Al usar __init__ en todas partes, podemos acceder a las variables desde toda la aplicación, al igual que Django.

Vamos a dividir las carpetas en partes:

  • Centro
    • modelos
      • base de datos.py
    • esquemas
      • usuarios.py
      • algo.py
    • configuración.py
    • vistas (agregue esto si va a renderizar plantillas)
      • v1_vistas.py
      • v2_views.py
  • pruebas
  • v1
  • v2

Modelos

Es para sus modelos de base de datos, al hacer esto puede importar la misma sesión de base de datos u objeto de v1 y v2.

esquemas

Los esquemas son sus modelos de Pydantic, los llamamos esquemas porque en realidad se usan para crear esquemas de OpenAPI, ya que FastAPI se basa en la especificación de OpenAPI. Usamos esquemas en todas partes, desde la generación de Swagger hasta el cuerpo de solicitud esperado del punto final.

configuración.py

Es para la gestión de configuraciones de Pydantic, que es extremadamente útil, puede usar las mismas variables sin volver a declararlas, para ver cómo podría ser útil para usted, consulte nuestra documentación para configuraciones y variables de entorno.

Puntos de vista

Esto es opcional si va a renderizar su interfaz con Jinja, puede tener algo parecido al patrón MVC

  • Centro
    • puntos de vista
      • v1_vistas.py
      • v2_views.py

Se vería algo como esto si desea agregar vistas.

Pruebas

Es bueno tener sus pruebas dentro de su carpeta de back-end.

API

Créelos de forma independiente mediante APIRouter, en lugar de reunir todas sus API en un solo archivo.

notas

Puede usar la importación absoluta para todas sus importaciones ya que estamos usando __init__ en todas partes, consulte los documentos de empaquetado de Python .

Así que suponga que está tratando de importar endpoint.py de v1 desde v2 , simplemente puede hacer

 from my_project.v1.endpoints.endpoint import something
over 4 years ago · Hanz Gallego 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