1. Arranque de la aplicación
Vemos el módulo que arranca la aplicación. El arranque se realiza con la sentencia uvicorn.run().
Este módulo:
- Arranca el servidor web unicorv
- Le passa los parametros necesarios al servidor para arrancar con https:
- nombre del servidor o ip,
- puerto,
- certificado (certifcdo + clave)
- Crea las tablas en base al modelo objeto relacional
- Utiliza el módulo menu_fh para configurar el objeto app de FastHTML
El módulo se llama mnu_main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #!/home/eduard/MyPython/11.softprop-01/venv_softprop/bin/python3 #1. Imports import os from sqlalchemy import Table #------Imprescindible para poder importar de otras carpetas (de basicutils) import sys from pathlib import Path path_root1 = Path(__file__).parents[1] # Damos un salto de directorio hacia arriba-> ximoutilsmod sys.path.append(str(path_root1)) path_root0 = Path(__file__).parents[0] # El mismo directorio sys.path.append(str(path_root0)) # ------Fin imprescindible #-------------------------------------------------------- # NOTA: No eliminar las siguientes dependencias marcadas en gris # pues, sinó falla el programa # De menus: routes01mnu, routes02form, routes03grid, app # De basicutils: xmdb, xmfunction # De menus.mnu_fh: fh # De models.xmallmodels: model_classes #-------------------------------------------------------- from menus import routes00comp, routes01mnu, routes02form, routes03grid # No eliminar !!! from basicutils import xmdb, xmfunction # Ahora importamos las funciones de FastHtml pero mejoradas con nuevos componentes from menus.mnu_fh import fh, app # No eliminar app !!! #--- Definición de tablas de la Base de datos postgres from models.xmallmodels import model_classes # Create database tables xmdb.Base.metadata.create_all(bind=xmdb.engine) # Execute the web server, but now not using fh.serve but uvicorm.run instead #fh.serve() if __name__ == "__main__": import uvicorn cert_path="/home/eduard/MyPython/11.softprop-01/static/certs/wildcard.tavernes.es." uvicorn.run(app, host="edu.tavernes.es", port=5001, #uvicorn.run(app, host="192.168.10.5", port=5001, ssl_keyfile =cert_path+"key", ssl_certfile=cert_path+"crt" ) |
A destacar:
Línea 1: El shebang que indica que entorno virtual ejecutar el programa
Lineas 4-5: Importacioón de librería del entorno virtual
Líneas 7-12: Truco para poder importar nuestras librerias (permite reconocer las rutas en 2 niveles de subcarpetas
Linea 27: Hemos delegado la configuración de la app de FastHTML al módulo mnu_fh donde se definen las rutas estáticas, las rutas que no vamos a revisar la seguridad ...
Lineas 30 y 34: Importamos las clases que originaran tablas(línea 30) y las creamos (linea 34)
Línea 39: importamos el servidor web "uvicorn"
linea 40: Definimos la ubicación del certificado de servidor junto con la raiz del nombre de los ficheros de clave y certifcado
Línea 41: Ejecutamos el servidor web, le indicamos la app que hemos complementado, la URL del servidor web (o IP) el puerto y la rutas del certificado y clave asociada.
No hay comentarios :
Publicar un comentario