Saltar al contenido

¿Cómo importar desde un archivo de configuración en Flask?

Solución:

Cuando la gente habla de configuraciones en Flask, generalmente se refieren a la carga de valores en la configuración de la aplicación. En su ejemplo anterior, podría tener algo como app.config.from_object('config') en tus init.py expediente. Luego, todos los valores de configuración se cargarán en el app.config diccionario.

Luego, en cualquiera de sus archivos, puede importar el objeto de la aplicación para obtener acceso a ese diccionario. Tiendo a acceder a eso app objetar haciendo from flask import current_app as app entonces solo app.config['MY_SETTING'] para obtener el valor que me importa. Leer más en la documentación.

Después de un poco de manipulación (y un poco de ayuda de la ‘red), podría mejorar esto aún más, cambiando el código para incluir la configuración a:

app.config.from_object('config.ProductionConfig')

Esto habilita este patrón genial para configuraciones:

class Config(object):
    DEBUG = True
    DEVELOPMENT = True
    SECRET_KEY = 'do-i-really-need-this'
    FLASK_HTPASSWD_PATH = '/secret/.htpasswd'
    FLASK_SECRET = SECRET_KEY
    DB_HOST = 'database' # a docker link

class ProductionConfig(Config):
    DEVELOPMENT = False
    DEBUG = False
    DB_HOST = 'my.production.database' # not a docker link

Lo que queda ahora es ver cómo integrar las configuraciones de prueba en esto, pero al menos se siente menos torpe.

Creé un archivo config.json en mi proyecto de matraz – carpeta raíz, como a continuación:

config.json

{
    "mail_settings":{
        "MAIL_SERVER": "smtp.gmail.com",
        "MAIL_PORT": 465,
        "MAIL_USE_TLS": "False",
        "MAIL_USE_SSL": "True",
        "MAIL_USERNAME": "[email protected]",
        "MAIL_PASSWORD": "your_password"
    },
    "database":{
        "MYSQL_HOST":"localhost",
        "MYSQL_USER": "user_name",
        "MYSQL_PASSWORD":"password",
        "MYSQL_DB":"database_name"
    }
}

y simplemente agregue el código a continuación donde queremos acceder a los valores de configuración. por ejemplo, voy a usar en app.py como se muestra a continuación:

primera biblioteca json matraz de importación:

import json

segundo, abra el archivo para leer y almacenar el json en alguna variable como la siguiente:

with open('config.json') as config_file:
    config_data = json.load(config_file)

agregue el código siguiente después de crear una aplicación Flask, llamada aplicación app = Flask(__name__) como a continuación, para acceder a config.json – valores de configuración.

# mail configuration
mail_settings = config_data['mail_settings']
app.config.update(mail_settings)

# database configuration
db_settings = config_data['database']
app.config.update(db_settings)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *