[[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]]