Crear un proyecto Django en Windows

Instalar el entorno virtual

Descargamos e instalamos active_python que incluye python,  pip y easy_install. Para instalar virtualenv usamos el siguiente comando en la consola.
 easy_install virtualenv

Para crear un nuevo entorno virtual usamos el siguiente comando, direccionados en la carpeta donde lo queremos crear y ejecutamos el comando:

 virtualenv ‘nombre del proyecto’

Esto nos genera una carpeta con una instancia de Python, entre otras cosas, es un entorno virtual.Para activar el entorno virtual ejecutamos un .bat que se encuentra en la carpeta scripts desde la consola de comandos, sería algo así:

 ‘nombre del proyecto’\Scrpits\activate 

Eso cambiará el promt de la consola de comandos.

Instalar Django en el nuevo proyecto

En el entorno virtual ejecutamos:
pip install django 

y en caso de que no funcione también podemos utilizar:
 easy_install django 

Es lo mismo solo con diferente administrador de paquetes.Una vez instalado iniciaremos un proyecto con Django para lo que ejecutamos el comando:
django-admin.py startproject ‘nombre del proyecto’ 

Esto generará una carpeta con el nombre del proyecto donde se encuentra el fabuloso manage.py.

Servidor

Levantemos el servidor primero. Nos direccionamos en la carpeta del proyecto Django con el comando:
cd ‘nombre del proyecto’ 

y ahora podemos ejecutar el poderoso comando:
manage.py runserver 

La consola nos arrojará los resultados y si todo ha salido bien iremos a la URL http://localhost:8000/ con el navegador y nos debe mostrar una página Web vacía, pero página funcionando al fin!
Para mayor comodidad de administración de nuestro proyecto descargaremos e instalaremos Sublime Text, es un editor muy funcional, una vez instalado damos click en “file” y seleccionar “carpeta”, y elegimos la carpeta de nuestro proyecto Django.

Definición de modelos

Comienza la parte interesante de definición de modelos pero antes creamos un módulo en nuestro proyecto también conocido como app, en este caso, el primer módulo corresponde a tracks, por lo que usaremos el comando:
manage.py startapp tracks 

Esto nos crea un nuevo directorio llamado “tracks” que contiene  admin, models, test y views para nuestra base de datos. Esto es magia.Comenzaremos creando el modelo. Usaremos el orm que proporciona Django que crea las estructuras de base de datos en base a los objetos que declaremos, lo que nos ahorra mucho trabajo.Este es el código inicial del modelo “tracks”.
from django.db import models

# Create your models here.
class Track(models.Model):
    title=models.CharField(max_length=255)
    order=models.PositiveIntegerField()
    track_file=models.FileField(upload_to='tracks')

Creamos el modelo de álbums:
manage.py startapp albums

Y de una vez el de artists:
manage.py startapp artists

Para que el proyecto haga uso de estos modelos que estamos declarando debemos registrarlos, para eso editamos el settings.py de nuestro proyecto Django y añadimos:
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'tracks',
    'albums',
    'artists',
)

Este es el código de los modelos de álbum:
from django.db import models

from artists.models import Artist
class Album(models.Model):
    title=models.CharField(max_length=255)
    cover=models.ImageField(upload_to='albums')
    artis=models.ForeignKey(Artist)

y el de artista:

from django.db import models

# Create your models here.
class Artist(models.Model):
    fris_name=models.CharField(max_length=255)
    last_name=models.CharField(max_length=255, blank=True)
    biography=models.TextField(blank=True)

Registro en la Base de Datos

Registraremos los cambios en la Base de Datos. Desde la consola de comandos tecleamos:
./manage.py syncdb 

Esto genera o actualiza la Base de Datos en función de los objetos que manejamos en Django.

De momento nos genera un error porque en álbum estamos manejando imágenes y Django no tiene soporte, pero para solucionarlo instalaremos la librería pillow. Para instalarla usaremos el comando:

pip install pillow 

Yo tengo algunos problemas con pip por lo que utilizo easy_intall pillow, esperamos pacientemente a que descargue e instale y listo… nuevamente sincronizamos:


./manage.py syncdb 

Si todo ha salido bien nos debe mostrar unas tablas que generará entre las que destacan tracks,album y artista que se generan en base a nuestros objetos. Después nos preguntará si deseamos crear un superusuario, decimos que yes e ingresamos usuario, correo y contraseña dos veces. 
Y listo! Base de Datos definida!

Ahora, para poder modificar las Bases de Datos sin tener que eliminarlas y volver a crearlas utilizaremos south.
Primero lo instalamos, ya sea con pip install south o con easy_install south, ahora debemos decirle al proyecto que trabaje con south editando de nuevo installed_apps:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'south',
    'tracks',
    'albums',
    'artists',
)

Acto seguido actualizamos la base de datos:

./manage.py syncdb 

Para editar el módulo tracks teclearemos en la consola:
./manage.py convert_to_south tracks

Realizamos los cambios tras los cuales quedará así la declaración del modelo:
from django.db import models

from albums.models import Album
from artists.models import Artist

class Track(models.Model):
    title=models.CharField(max_length=255)
    order=models.PositiveIntegerField()
    track_file=models.FileField(upload_to='tracks')
    album=models.ForeignKey(Album)
    artist=models.ForeignKey(Artist)

Para actualizar los cambios en la Base de Datos tecleamos en la consola de comandos:
manage.py schemamigration tracks --auto

Nos preguntará qué valor deseamos agregar a las columnas que creamos en las filas existentes, tecleamos2 y como no tenemos filas, no importa lo que pongamos, yo puse ‘null’. Como son dos columnas nuevas nos pregunta dos veces y respondemos igual, después aparece que estamos listos para migrar.

Comentarios

Entradas populares de este blog

Instalar Ruby on Rails en Ubuntu 13.04

Navigation Drawer (Cajón de Navegación) Android

Preguntas de una entrevista de trabajo para Ruby y Ruby on Rails