Configurar Django sobre Windows

Hoy me ví en la necesidad de montar un servidor de producción para Django sobre Windows. Los que me conocen ya saben que no me gusta demasiado trabajar sobre este sistema operativo y que prefiero un hosting como Webfaction que me permite trabajar comodamente sobre Linux. Pero hay veces que nos toca cargar con el muerto y hacerlo correr sobre un Windows, así que me puse manos a la obra.

Advertencia

Antes de nada quiero advertiros que esta configuración usa SQLite como base de datos. Esto nos viene muy bien porque es muy fácil de configurar y de gestionar mediante un único fichero, pero no es la base de datos adecuada si la aplicación debe soportar mucha carga.

Instalación de Software

  1. PythonVersión 2.5.2
  2. ApacheVersión 2.2.9 sin SSL
  3. Mod_PythonVersión 3.3.1
  4. SubversionVersión 1.4.6

Modificar la variable Path

Debemos modificar la variable Path de Windows. Para ello hacemos click derecho sobre Mi PC, Propiedades, Opciones Avanzadas, Variables de Entorno y editar la variable Path añadiendo C:\Python25;C:\Python25\Scripts\

Configurar Apache

Editamos el archivo \Apache2.2\conf\httpd.conf:

#Añadimos el soporte para python
 
LoadModule python_module modules/mod_python.so
 
#Copiamos este fragmento al final de httpd.conf
SetHandler python-program
PythonPath "['C:\dj-sites'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE proyecto.settings
PythonDebug Off
Order allow,deny
Allow from all
 
Alias /media/ C:/dj-sites/media/
 
SetHandler None

Reiniciamos el servidor mediante el icono de Apache en la barra del sistema.

Instalar Django

Descargamos la rama de desarrollo NewForms-Admin mediante el comando:

C:\svn co http://code.djangoproject.com/svn/django/branches/newforms-admin/  django_nfa

Instalamos Django mediante el comando:

C:\django_nfa>python setup.py install

Ahora solo tenemos que copiar la aplicación deseada a C:\dj-sites\ y configurar el archivo settings.py para que utilice la base de datos SQLite.

import os.path</code>
 
DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = os.path.join(os.path.dirname(__file__), 'data.db').replace('\\','/')

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">