Despliegue local
Demo
Como primer acercamiento a la integración y despliegue del proyecto
se hizo una carpeta tests
donde se organizan todos los componentes de ejemplo.
La estructura interna es aproximadamente la siguiente:
tests
├── db.env
├── docker-compose.yml
├── fastapi
│ ├── app
│ │ ├── __init__.py
│ │ └── main.py
│ ├── docker-compose.yml
│ ├── Dockerfile
│ └── requirements.txt
├── flet
│ ├── Dockerfile
│ ├── pyproject.toml
│ ├── requirements.txt
│ └── src
│ ├── assets
│ └── main.py
└── sqlmodel
├── Dockerfile
├── requirements.txt
└── src
└── main.py
-
Para correr las pruebas preliminares en Docker se creó el archivo
docker-compose.yml
, el cual se encuentra en la carpetatests
. Este archivo ya incluye todas las configuraciones predefinidas para el despliegue de los contenedores. -
El archivo
db.env
es el encargado de guardar los valores de configuración. -
Cada framework o componente de Python utilizado tiene su propia carpeta interna, incluyendo:
- su rutina de demo
main.py
; - su archivo de dependencias
requirements.txt
; - su archivo
Dockerfile
para que Docker pueda crear las imágenes necesarias.
También es posible desplegar los componentes del demo mediante entornos virtuales usando múltiples shells, aunque este método es el más engorroso.
- su rutina de demo
Funcionamiento
Conexiones por navegador
Una vez completada la puesta en marcha,
se abre el navegador y se prueba ingresar a la ruta local
(localhost
o 127.0.0.1
)
agregando los números de puerto especificados.
Backend
En el caso del backend se eligió el puerto 9001. Los demos se ven con las siguientes URLs:
El resultado es un objeto JSON (un "diccionario" de Python)La documentación generada por FastAPI se consulta en las rutas:
Frontend
Para el frontend se eligió el puerto 9002:
El demo es un contador sencillo que se incrementa al hacer click sobre el botón.Documentación (local)
La documentación se consulta en el puerto 9003:
dando lugar a la presente documentación. Los archivos de texto y de configuración están afuera del directorio del test, porque son relevantes para todo el proyecto.
Bases de datos
De momento, la única base de datos utiliza el puerto 9000. Se usa un cliente para base de datos y se crea una conexión para base de datos con los siguientes parámetros:
variable | valor |
---|---|
nombre de driver | PostgreSQL |
puerto | 9000 |
usuario | postgres |
contraseña | 123456 |
nombre database | test-db |
El cliente debería ser capaz de conectarse y mostrar las bases de datos internas postgres
(se crea por default) y test-db
.
Cliente de base de datos
Se implementó un cliente que hace una única petición a la base de datos
y se detiene.
La petición consiste en crear una tabla llamada hero
y agregarle tres filas de datos.
Si la tabla ya existe entonces se repiten las filas de datos.