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
Publicar un comentario