Es posible que necesitemos sacar cierta información de carácter sensible del fichero settings.py de un proyecto, bien por facilitar el trabajo con control de versiones, o por querer tener diferentes configuraciones entre entornos.
Una manera sencilla de hacer esto es como se explica en https://code.djangoproject.com/wiki/SplitSettings.
Por ejemplo, imaginemos que queremos sacar la información de bbdd. Para ello nos vamos a crear un fichero settings.ini en /etc, cuyo contenido será este:
[database]
DATABASE_NAME: nombre_bbdd
DATABASE_USER: usuario
DATABASE_PASSWORD: pass
DATABASE_HOST: localhost
DATABASE_PORT: 3306
Luego tan sólo tendremos que modificar nuestro settings.py añadiendo esto:
from ConfigParser import RawConfigParser
config = RawConfigParser()
config.read('/etc/settings.ini')
Y en la sección DATABASES configuraremos lo siguiente:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'config.get('database', 'DATABASE_NAME')',
'USER': config.get('database', 'DATABASE_USER'),
'PASSWORD': config.get('database', 'DATABASE_PASSWORD'),
'HOST': config.get('database', 'DATABASE_HOST'),
'PORT': config.get('database', 'DATABASE_PORT'),
}
}
Y listo, ya tendremos nuestro settings.py configurado para poder ser distribuido sin tener que estar pendiente de modificar ningún dato sensible.
Comentarios
Publicar un comentario