Configuración

Entorno

El siguiente paso sera configurar el entorno para trabajar con el DBMS y framework.

Windows

Instalar el DBMS

la mejor forma es seguir las instrucciones del sitio oficial para instalar PostgreSQL.

Instalar Python y Django

Descargar Active Python, con este instalarás Python, pip y easy_install con un click.

Note

pip es un gestor de paquetes que nos permitirá instalar cualquier tipo de dependencia a través de linea de comandos (sea una librería, un framework, herramientas para programación, etc.. ) .

Linux

Para distribuciones de Linux no es necesario instalar Python.

Instalar el DBMS:

$ apt-get install postgresql postgresql-contrib

Instalar pip:

$ apt-get install pip

Framework

Una vez configurado todas las dependencias del sistema operativo estamos listos para clonar el proyecto e instalar sus dependencias con la ayuda de pip:

$ git clone https://github.com/uzi200/biblioteca-django.git

o en su defecto Descargar el proyecto

Ingresar al directorio:

$ cd biblioteca-django

Crear un entorno virtual con virtualenv

Note

Crear un entorno virtual es opcional, pero es buena practica hacerlo para poder transportar el proyecto a cualquier maquina sin tener conflictos con dependencias

En el directorio del proyecto instalar dependencias del proyecto de forma recursiva

$ pip install -r requirements.txt

Con esto sera suficiente para poner a funcionar el proyecto, el siguiente paso sera configurar la base de datos.

Base de datos

Todas las configuraciones para trabajar con una base de datos en en el proyecto utilizando PostgreSQL.

Conexión a la base de datos

En el archivo settings.py

DATABASES = {
       'default': {
           'ENGINE':                    'django.db.backends.postgresql_psycopg2',
           'NAME': '$nombre_db',
           'USER': '$nombre_usuario',
           'PASSWORD': '$contraseña,
           'HOST': 'localhost',
           'PORT': '',
       }
}

Ingresar al la utilidad de linea de comandos de Posgresql:

$ sudo -u  postgres psql

Creación de usuarios:

postgres-# CREATEUSER $nombre_usuario --pwprompt

Permisos sobre la base de datos:

postgres-# ALTER DATABASE $nombre_db OWNER to $nombre_usuario;

Crear una base de datos:

postgres-# CREATE DATABASE $nombre_db

Creación de tablas

postgres-# CREATE TABLE autor (
id int NOT NULL,
nombre varchar(50) NOT NULL,
nacionalidad varchar(50) NOT NULL,
);

Note

Es importante mencionar que en Django no es necesario hacer manualmente DDL con SQL, basta con definir los modelos en el framework, sincronizarlos con el comando de Django syncdb y el ORM (Object relational model) se encargara de generar el script en la base de datos.

Algo de DML

  • Listar todas las bases de datos: `\l`
  • Conectarse a una en particular: ` \c $nombre_db`
  • Mostrar las tablas: ` \d $nombre_tabla`
  • Ver esquema una tabla: `\d+ $nombre_tabla`

Consultas

postgres-# SELECT $atributo FROM $nombre_tabla WHERE $condición

Modelos

En el directorio libros se encuentran los modelos donde se definen así:

class Libro(models.Model):
    titulo = models.CharField(max_length=100)
    autor = models.ForeignKey(Autor)

    def __unicode__(self):
        return self.titulo

En la documentación oficial esta la referencia de todos los tipos de datos, restricciones relaciones.