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)