Ver índice de contenidos del libro

2.6. Comenzar un proyecto

Un proyecto es una colección de configuraciones para una instancia de Django, incluyendo configuración de base de datos, opciones específicas de Django y configuraciones específicas de aplicaciones.

Si esta es la primera vez que usas Django, tendrás que tener cuidado de algunas configuraciones iniciales. Crea un nuevo directorio para empezar a trabajar, por ejemplo algo como /home/username/djcode/, e ingresa a este directorio.

Ejecuta el comando django-admin.py startproject mysite para crear el directorio mysite en el directorio actual.

Echemos un vistazo a lo que startproject creó:

mysite/
       manage.py
       mysite/
           __init__.py
           settings.py
           urls.py
           wsgi.py

Nota ¿ No es lo mismo que ves?

Si estamos viendo un arbol de directorios diferentes al anterior problablemente estamos usando una version de Django anterior.

Estos archivos son los siguientes:

  • mysite/: El Directorio que contiene nuestro projecto. Podemos cambiarle el nombre en cualquier momento sin afectar nuestro proyecto.
  • manage.py: Una utilidad de línea de comandos que te deja interactuar con este proyecto de Django de varias formas.
  • mysite/mysite/:El directorio de nuestro paquete que contiene nuestro projecto el cual es un paquete python y el que se usara para importar cualquier cosa dentro de el.
  • mysite/__init__.py: Un archivo requerido para que Python trate a este directorio como un paquete (i.e. un grupo de módulos).
  • mysite/settings.py: Opciones/configuraciones para este proyecto de Django.
  • mysite/urls.py: La declaración de las URL para este proyecto de Django; una "tabla de contenidos" de tu sitio hecho con Django.
  • mysite/wsgi.py: El archivo encargado de ser compatible con el servidor web.

2.6.1. ¿Dónde debería estar este directorio?

Si vienes de PHP, probablemente pondrías el código debajo de la carpeta raíz del servidor web (en lugares como /var/www). Con Django, no tienes que hacer esto. No es una buena idea poner cualquier código Python en la carpeta raíz del servidor web, porque al hacerlo se arriesga a que la gente sea capaz de ver el código en la web. Esto no es bueno para la seguridad. Pon tu código en algún directorio fuera de la carpeta raíz.

2.6.2. El servidor de desarrollo

Django incluye un servidor web ligero que puedes usar mientras estás desarrollando tu sitio. Incluimos este servidor para que puedas desarrollar tu sitio rápidamente, sin tener que lidiar con configuraciones de servidores web de producción (i.e., Apache) hasta que estés listo para la producción. Este servidor de desarrollo vigila tu código a la espera de cambios y se reinicia automáticamente, ayudándote a hacer algunos cambios rápidos en tu proyecto sin necesidad de reiniciar nada.

Entra en el directorio mysite, si aún no lo has hecho, y ejecuta el comando python manage.py runserver. Verás algo parecido a esto:

Validating models...
0 errors found.
 
Django version 1.0, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Aunque el servidor de desarrollo es extremadamente útil para, bueno, desarrollar, resiste la tentación de usar este servidor en cualquier entorno parecido a producción. El servidor de desarrollo puede manejar fiablemente una sola petición a la vez, y no ha pasado por una auditoría de seguridad de ningún tipo. Cuando sea el momento de lanzar tu sitio, mira el Capítulo 20 para información sobre cómo hacerlo con Django.

Ahora que el servidor está corriendo, visita http://127.0.0.1:8000/ con tu navegador web. Verás una página de "Bienvenido a Django" sombreada con un azul pastel agradable. ¡Funciona!

Bienvenido a Django

Figura 2.1 Bienvenido a Django