Ir al contenido principal

Entradas

Mostrando entradas de noviembre, 2012

Establecer tiempo de sesión en django

Para controlar el tiempo de sesión en django, podemos hacer uso de las siguentes directivas dentro de nuestro settings.py: #Tiempo de vida de la sesión en segundos SESSION_COOKIE_AGE = 600 #Para que expire la sesión al cerrar el navegador. Por defecto está a False SESSION_EXPIRE_AT_BROWSER_CLOSE = True También es importante si tenemos varios proyectos publicados en el mismo apache, añadir la siguiente directiva: SESSION_COOKIE_NAME = 'cadena_distintiva' donde 'cadena_distintiva' deberá ser diferente, para que cada proyecto tenga una cookie diferente y no entre en conflicto con las de otros.

Limpiar django_sessions

Ocurre que la tabla de django "django_session" suele crecer de forma desmesurada, debido a que django por sí sólo no limpia las sesiones expiradas (en gran parte porque al salir no lo hacemos con logout). Para evitar que crezca esta tabla, django nos ofrece el siguiente comando: cleanup el cual limpia de la bbdd aquellas entradas de sesiones ya expiradas. Lo ideal por tanto, es añadir en el cron una entrada como esta: 0 8 * * * /usr/bin/python /ruta/proyecto/manage.py cleanup Para que periódicamente (a las 8 de la mañana por ejemplo) limpie las sesiones caducadas de nuestro proyecto django.

Montar un repositorio con Git

Ayer me entró la curiosidad sobre cómo utilizar el gestor de control de versiones git. Ya tengo montado mi repositorio en una máquina remota y configurado para realizar los cambios desde mi equipo para luego subirlos a producción. Os comento cómo hacer esto. Escenario: - Servidor de producción [SERVIDOR] . En este servidor tenemos corriendo una aplicación en django (en la ruta /opt/proyecto/aplicacionA). Aquí también motaremos nuestro repositorio remoto. Tendremos que tener git instalado (desde paquetería o compilando). - Equipo local [LOCAL]. Aquí es desde donde haremos los desarrollos, para posteriormente, subirlos a producción. Tendremos que tener git instalado (desde paquetería o compilando). Lo que sigue a continuación serán los pasos al estilo receta, para más info de git, acudir al sitio http://git-scm.com/book/es/ 1) Crear repositorio remoto - Accedemos por ssh a SERVIDOR - Creamos la ubicación del repositorio y lo iniciamos:     [SERVIDOR] mkdir /opt/rep

Sacar configuración importante de settings.py en Django

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',         'N