viernes, 7 de noviembre de 2008

Arranque de proyecto Django

Un par de cositas que me han ayudado como "buenas prácticas" en proyectos Django:

Estructura de directorio
Crear una estructura de directorios que contenga Django, los fuentes y templates:
  • /src
  • /templates
  • /Django-1.0

Path a instalación de Django

Configurar manage.py para que se agregue al path la instalación de Django:

import sys, os

sys.path.append(os.path.abspath(
os.path.join(
os.path.dirname(__file__), '..', '..', 'Django-1.0')))

sys.path.append(os.path.abspath(
os.path.join(
os.path.dirname(__file__), '..')))


Logging
Setear logging por consola en nivel debug, cuando DEBUG está activado, agregando las siguientes líneas en settings.py:

if DEBUG:
import logging
logging.basicConfig(
level = logging.DEBUG,
format = '%(asctime)s %(levelname)s %(message)s',
)
También sería prudente configurarlo en nivel warning cuando DEBUG no está seteado:

else:
import logging
logging.basicConfig(
level = logging.WARN,
format = '%(asctime)s %(levelname)s %(message)s',
)



Path a templates

Se puede agregar automaticamente a 'TEMPLATE_DIRS' nuestro directorio de templtates modificando settings.py de manera que quede:

tmp_template_dir = [
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
]

try:
import os
auto_dir = os.environ['AUTO_TEMPLATE_DIR']
tmp_template_dir.append(auto_dir)
except KeyError:
pass

TEMPLATE_DIRS = tuple(tmp_template_dir)

Y en manage.py:

os.environ['AUTO_TEMPLATE_DIR']=
os.path.abspath(os.path.join(
os.path.dirname(__file__), '../../templates'))

OJO que los pedazos de código Python que copié y pegué quedaron mal indentados... aún cuando le agregué los <pre> necesarios en el HTML...

No hay comentarios: