Administración de la configuración de Flask

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, aprenderá a manejar la configuración en una aplicación Flask. La configuración le permite cambiar la configuración de su aplicación según diferentes entornos, como activar o desactivar el modo de depuración, establecer claves secretas y otras variables específicas del entorno.

Nota: Debe crear el archivo de código por sí mismo y ejecutarlo en el entorno. Puede previsualizar el estado del servicio Flask en Web 5000.

Crea una aplicación Flask

Primero, creemos una aplicación Flask básica. Crea un archivo llamado app.py y agrega el siguiente código:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask!'

Para ejecutar la aplicación, ejecuta el siguiente comando en tu terminal:

python app.py

Abre tu navegador web y visita http://localhost:5000 para ver el mensaje "Hello, Flask!".

Configuración básica

Ahora agreguemos algunas configuraciones básicas a nuestra aplicación Flask. En el mismo archivo app.py, agrega el siguiente código:

app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'mysecretkey'

La configuración DEBUG habilita el modo de depuración, que proporciona mensajes de error útiles durante el desarrollo. La configuración SECRET_KEY se utiliza para firmar de manera segura las cookies de sesión y otras necesidades relacionadas con la seguridad.

Para acceder a los valores de configuración, puede usar el diccionario app.config. Por ejemplo, para imprimir el valor de la SECRET_KEY, agrega el siguiente código a la ruta hello:

@app.route('/')
def hello():
    secret_key = app.config['SECRET_KEY']
    return f'Hello, Flask! Secret Key: {secret_key}'

Reinicie la aplicación Flask y visite http://localhost:5000 para ver el mensaje actualizado con la clave secreta.

Configuración a partir de archivos

Codificar los valores de configuración en el código no es ideal, especialmente para información sensible. Flask proporciona una forma de cargar la configuración a partir de archivos separados. Crea un nuevo archivo llamado config.py y agrega el siguiente código:

DEBUG = False
SECRET_KEY = 'myothersecretkey'

En el archivo app.py, reemplaza el código de configuración anterior con el siguiente:

app.config.from_object('config')

El método from_object carga la configuración desde el módulo config. Ahora, los valores de DEBUG y SECRET_KEY se cargarán desde el archivo config.py.

Reinicie la aplicación Flask y visite http://localhost:5000 para ver el mensaje actualizado con los nuevos valores de configuración.

Configuración basada en el entorno

Es común tener diferentes configuraciones para diferentes entornos, como desarrollo, producción y pruebas. Flask te permite cambiar la configuración según variables de entorno. Crea un nuevo archivo llamado config_dev.py y agrega el siguiente código:

DEBUG = True
SECRET_KEY = 'devsecretkey'

Crea otro archivo llamado config_prod.py con el siguiente código:

DEBUG = False
SECRET_KEY = 'prodsecretkey'

En el archivo app.py, reemplaza el código de configuración anterior con el siguiente:

import os

if os.environ.get('FLASK_ENV') == 'production':
    app.config.from_object('config_prod')
else:
    app.config.from_object('config_dev')

La variable de entorno FLASK_ENV se utiliza para determinar el entorno. Si se establece en 'production', se cargará la configuración de producción; de lo contrario, se cargará la configuración de desarrollo.

Establece la variable de entorno FLASK_ENV en 'production' y reinicia la aplicación Flask. Visita http://localhost:5000 para ver el mensaje actualizado con los valores de configuración de producción.

Carpeta de instancia

Flask proporciona una carpeta de instancia para almacenar archivos de configuración específicos de un despliegue particular. Esto te permite separar las configuraciones específicas del despliegue del resto de tu código. Por defecto, Flask utiliza una carpeta llamada instance en el mismo directorio que tu aplicación.

Crea una nueva carpeta llamada instance en el mismo directorio que tu archivo app.py. En la carpeta instance, crea un archivo llamado config.cfg y agrega el siguiente código:

DEBUG = True
SECRET_KEY = 'instancekey'

En el archivo app.py, agrega el siguiente código antes del código de configuración:

app.instance_path = os.path.abspath(os.path.dirname(__file__))
app.config.from_pyfile('config.cfg')

La instance_path se establece en la ruta absoluta de la carpeta instance. El método from_pyfile carga la configuración desde el archivo config.cfg en la carpeta de instancia.

Reinicie la aplicación Flask y visite http://localhost:5000 para ver el mensaje actualizado con los valores de configuración de la instancia.

Resumen

En este laboratorio, aprendiste cómo manejar la configuración en una aplicación Flask. Aprendiste cómo establecer valores de configuración básicos, cargar la configuración desde archivos, cambiar la configuración según variables de entorno y usar una carpeta de instancia para configuraciones específicas del despliegue. La configuración es un aspecto importante al construir aplicaciones Flask robustas y flexibles.