[[start|Nivel superior]] |[[Flask app 2|Parte 2]]| ====== Flask - 1 - Desarrollo. ====== ===== Introducción ===== Tutorial de Desarrollo de una Aplicación con Flask y Gestión con systemd Referencias: [[https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world|Flask mega tutorial]] ===== Requerimientos ===== * Linux server (basado en paquetes ''.deb'', como Ubuntu o Mint) * Flask * Pipenv ===== Preparación del Entorno de Desarrollo ===== ==== Instalación de Dependencias ==== Primero, asegúrate de tener instaladas las dependencias necesarias en el servidor. Pipenv es una herramienta para la gestión de dependencias de Python. sudo apt update sudo apt install python3-pip python3-dev curl pipenv Una alternativa para usar un ''pipenv'' más actualizado es instalarlo con pip: sudo apt install python3-pip pip install --user pipenv ==== Creación del Proyecto ==== Crea un directorio para tu proyecto y navega a él: mkdir my_flask_app cd my_flask_app ==== Inicialización del Entorno Virtual con Pipenv ==== Inicializa un nuevo entorno virtual y crea un archivo ''Pipfile'': pipenv shell Esto creará un nuevo directorio en ''~/.local/share/virtualenvs/'' con los scripts de activate y desactivate. Yo suelo modificar el script de activate añadiendo al final ''cd directorio_de_trabajo'', aunque no es una práctica recomendada, a mí me resulta más cómodo. Instalamos lo básico. pipenv install flask ==== Creación de la Aplicación Base ==== Para montar una aplicación mínima de Flask hay que crear un fichero ''app.py'' donde iniciaremos el desarrollo de la aplicación, con el siguiente contenido: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run( host='0.0.0.0', port=5000, debug=True ) ==== Ejecución de la Aplicación ==== Activa el entorno virtual y ejecuta la aplicación: pipenv shell python app.py * Serving Flask app 'app' * Debug mode: on * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:5000 * Running on http://192.168.12.34:5000 Press CTRL+C to quit Ahora, puedes acceder a tu aplicación en ''http://127.0.0.1:5000''. También puedes acceder a la aplicación desde otro ordenador usando un navegador. Usa la dirección IP del servidor y el puerto 5000. Hay que asegurarse que el puerto 5000 no está bloqueado por un firewall. La url sería algo como: ''http://192.168.12.34:5000''. Debería obtener ''Hello World'' en el navegador. Pulsa CTRL+C para parar el servidor de desarrollo de Flask. ==== Creación de secret key ==== Esto se sale de lo que sería la creación de una aplicación ''Hello World'', pero lo mantengo para no perder mis notas. Para crear la clave podemos usar el siguiente código: import os os.urandom(24) Esta clave secreta se puede configurar luego en la aplicación, para mejorar la seguridad de la aplicación. app.secret_key = '76............................47' Esta clave no debería estar directamente en el código sino formar parte de las variables de entorno o de configuración. app.secret_key = config.dict['secret_key'] Explicar el uso de ''config.dict'' excede la intención de esta pequeña introducción, pero aquí hay una referencia: [[https://flask.palletsprojects.com/en/latest/config/|Documentación Flask]]