Mostrando entradas con la etiqueta Django. Mostrar todas las entradas
Mostrando entradas con la etiqueta Django. Mostrar todas las entradas
viernes, 16 de noviembre de 2012
Django - Caso Instituto
Acá les dejo un Ejemplo en Django que encontre y lo adapte para la versión 1.4 de Django
sábado, 3 de noviembre de 2012
DJANGO: INSTALACIÓN Y APLICACIÓN (Parte III)
Una vez que ya tenemos instalado Django, creado nuestro primer proyecto y haber revisado como funciona, necesitamos definir el modelo de datos para nuestra aplicación.
EL MODELO
Un modelo es la representación de los datos de nuestra aplicación. Contiene los campos básicos y el comportamiento de los datos que serán almacenados. Por lo general, cada modelo se convierte en una tabla de la base de datos.
LO FUNDAMENTAL
- Cada modelo es una subclase de django.db.models.Model.
- Cada atributo de un modelo representa a un campo de una tabla.
- Django automáticamente nos da acceso a la base de datos.
REFERENCIA DE LOS CAMPOS
La referencia de la versión actual esta detallada por completo en la documentación del framework, con este recurso podemos elaborar todas las referencias necesarias para el proyecto, sin embargo leerlo por completo puede resultar al principio un poco tedioso.
Para ello siempre es muy útil un cheatsheet o chuleta para poder visualizarlos juntos.
EJEMPLO DE MODELO EN NUESTRO PROYECTO
Vamos con el ejemplo del capítulo para poder entender mejor como va esto del modelo.
NOTA
Para poder continuar con este ejemplo, tienen que seguir el curso desde el primer capítulo y evitar solamente copiar y pegar, escribanlo que es mejor en todo sentido.
Nuestro archivo: models.py de la semana pasada quedó así:
from django.db import models class Bebida(models.Model): nombre = models.CharField(max_length=50) ingredientes = models.TextField() preparacion = models.TextField() def __unicode__(self): return self.nombre
Este modelo solo fue un ejemplo para saber cómo funcionaba, ahora redactaré algunas líneas que nos ayudarán a tener un modelo más completo:
#encoding:utf-8
from django.db import models
from django.contrib.auth.models import User
class Bebida(models.Model):
nombre = models.CharField(max_length=50)
ingredientes = models.TextField()
preparacion = models.TextField()
def __unicode__(self):
return self.nombre
class Receta(models.Model):
titulo = models.CharField(max_length=100, unique=True)
ingredientes = models.TextField(help_text='Redacta los ingredientes')
prepacion = models.TextField(verbose_name='Preparación')
imagen = models.ImageField(upload_to='recetas', verbose_name='Imágen')
tiempo_registro = models.DateTimeField(auto_now=True)
usuario = models.ForeignKey(User)
def __unicode__(self):
return self.titulo
Son clases en Python (respetar la indentación), les explicaré de que trata todo esto:
#encoding:utf-8 <- Esta línea permite usar tíldes y caracteres especiales from django.db import models <- Clase con la descripción de modelos from django.contrib.auth.models import User <- Llama al modelo usuario
La clase Bebida de la semana anterior sólo era un ejemplo, no le daremos importancia de ahora en adelante, pasemos con la clase Receta (y sus respectivos comentarios previos a cada línea).
#Dato cadena, longitud máxima 100 y único titulo = models.CharField(max_length=100, unique=True) #Dato texto, con texto de ayuda ingredientes = models.TextField(help_text='Redacta los ingredientes') #Dato texto, con nombre: Preparación prepacion = models.TextField(verbose_name='Preparación') #Dato imagen, se almacenarán en la carpeta recetas, titulo: Imágen imagen = models.ImageField(upload_to='recetas', verbose_name='Imágen') #Dato Fecha y Hora, almacena la fecha actual tiempo_registro = models.DateTimeField(auto_now=True) #Enlace al modelo Usuario que Django ya tiene construido usuario = models.ForeignKey(User)
La clase Receta (modelo) tiene un atributo imagen, el cuál está direccionando las cargas que haga el usuario a la carpeta ‘recetas’ (carpeta que estará dentro de otra llamada: ‘carga’), para que esto funcione debemos modificar nuestro archivo settings.py, exactamente debemos buscar la línea: MEDIA_ROOT (debe ser la número 56 aproximadamente), y dejarla así:
MEDIA_ROOT = os.path.join(RUTA_PROYECTO,'carga')
Luego de haber puesto esta línea, debemos crear una carpeta que se llame ‘carga’ dentro de la carpeta del proyecto. Debemos tener un árbol de ficheros de este tipo:
Dentro de esta carpeta ‘carga’ aparecerá una carpeta ‘recetas’ al momento de guardar un registro. Pero antes de ello debemos buscar el archivo admin.py y dejarlo asi:
from principal.models import Bebida, Receta from django.contrib import admin admin.site.register(Bebida) admin.site.register(Receta)
Esto nos permitirá agregar el modelo Receta dentro de la interfaz administrativa.
Por último debemos habilitar las URL para poder visualizar las imágenes, para ello debemos dejar el archivo urls.py asi:
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$','principal.views.lista_bebidas'),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^media/(?P.*)$','django.views.static.serve',
{'document_root':settings.MEDIA_ROOT,}
),
)
Esto nos permitirá acceder a las imágenes que subamos desde http://127.0.0.1:8000/media/recetas/nombre-imagen.jpg (o cualquier otra imagen).
PONIENDO A CORRER TODO
Para hacer funcionar todo, debemos sincronizar la base de datos nuevamente (esto se debe hacer cada vez que se modifique el modelo).
NOTA
Toda ejecución de comando se debe hacer desde una terminal o ventana de comando y dentro de la carpeta del proyecto (donde se encuentra el archivo manage.py)
python manage.py syncdb
Y esto nos debe mostrar un resultado así (prestar atención a la segunda línea):
En caso de que queramos modificar un modelo ya existente podemos también reiniciar todos los modelos de la aplicación principal así:
python manage.py reset principal
Sin embargo si ya se tienen datos almacenados estos se perderán al momento de reiniciarlos, para evitar eso podemos usar aplicaciones como South, que nos permitirán trabajar con los datos de manera más profesional. Aquí un video de ejemplo:
PROBANDO EL EJEMPLO
Ya tenemos todo listo, el modelo nuevo sincronizado, las configuraciones listas y la interfaz administrativa. Corremos el proyecto:
python manage.py runserver
Entramos a http://127.0.0.1:8000/admin y debemos observar el nuevo modelo: Recetas, listo para ser usado. Para ver las imágenes que se van cargando podemos ir a http://127.0.0.1:8000/media/recetas/nombre-imagen.jpg y si son proactivos, pueden modificar la plantilla de la semana pasada para poder ver el nuevo modelo de Recetas y sus imágenes, o pueden crear nuevos modelos para ver como pueden interactuar entre sí.
No se olviden que pueden revisar el repositorio del proyecto en github si desean comprobar como deben quedar los archivos (en orden y en contenido).
La próxima semana sabremos que hacer con estos modelos y como interactuar con sus datos, lo haremos a través de la Shell de Django.
Que tengan un buen inicio de semana con Django, no se olviden comentar, twittear y hacer todas sus consultas, para poder ayudarlos.
DJANGO: INSTALACIÓN Y APLICACIÓN (Parte II)
ENTENDIENDO COMO TRABAJA DJANGO
La semana pasada vimos lo fácil que fue crear un proyecto y ejecutarlo en unos cuantos pasos, sin embargo esa simplicidad debe ir acompañada de una fuerte lógica para poder aplicar Django a proyectos reales, es por eso que esta semana nos dedicaremos a entender como es que Django hace toda esa magia.
NOTA
Para tener una estupenda experiencia con Django, el orden de los archivos y directorios deben respetarse, caso contrario el caos llegará rápidamente a nuestro proyecto y fracasará al momento de hacerlo crecer con mas personas o requerimientos.
Antes de iniciar con la explicación de como funciona Django, dale un vistazo a este vídeo:
Ahora que ya entiendes el contexto, empezamos!
MTV Y DJANGO
Se podría clasificar a Django como parte de la tercera generación del desarrollo web:
Sin embargo más alla de las clasificaciones que podrían existir, está el entender como funciona realmente, al entenderlo se puede llegar a dominarlo.
Al principio del curso de Django, les dije que era un framework MTV (una modificación de MVC, nada que ver con música), esto se debe a que los desarrolladores no tuvieron la intención de seguir algún patron de desarrollo, sino hacer el framework lo más funcional posible.
Para empezar a entender MTV debemos fijarnos en la analogía con MVC.
- El modelo en Django sigue siendo modelo
- La vista en Django se llama Plantilla (Template)
- El controlador en Django se llama Vista
Una imagen nos hará entender mejor esta relación:
Veamos que hace cada uno de ellos con un poco más de detalle y algunos conceptos adicionales.
EL MODELO
El modelo define los datos almacenados, se encuentra en forma de clases de Python, cada tipo de dato que debe ser almacenado se encuentra en una variable con ciertos parámetros, posee métodos también. Todo esto permite indicar y controlar el comportamiento de los datos.
LA VISTA
La vista se presenta en forma de funciones en Python, su propósito es determinar que datos serán visualizados, entre otras cosas más que iremos viendo conforme avanzamos con el curso. El ORM de Django permite escribir código Python en lugar de SQL para hacer las consultas que necesita la vista. La vista también se encarga de tareas conocidas como el envío de correo electrónico, la autenticación con servicios externos y la validación de datos a través de formularios. Lo mas importante a entender con respecto a la vista es que no tiene nada que ver con el estilo de presentación de los datos, sólo se encarga de los datos, la presentación es tarea de la plantilla.
LA PLANTILLA
La plantilla es básicamente una página HTML con algunas etiquetas extras propias de Django, en si no solamente crea contenido en HTML (también XML, CSS, Javascript, CSV, etc).
Por ahora nos enfocaremos a lo básico el HTML. La plantilla recibe los datos de la vista y luego los organiza para la presentación al navegador web. Las etiquetas que Django usa para las plantillas permiten que sea flexible para los diseñadores del frontend, incluso tiene estructuras de datos como if, por por si es necesaria una presentación lógica de los datos, estas estructuras son límitadas para evitar un desorden poniendo cualquier tipo de código Python.
Esto permite que la lógica del sistema siga permaneciendo en la vista.
LA CONFIGURACIÓN DE LAS RUTAS
Django posee un mapeo de URLs que permite controlar el despliegue de las vistas, esta configuración es conocida como URLConf. El trabajo del URLConf es leer la URL que el usuario solicitó, encontrar la vista apropiada para la solicitud y pasar cualquier variable que la vista necesite para completar su trabajo. El URLConf esta construido con expresiones regulares enPython y sigue la filosofia de Python: Explicito es mejor que implícito. Este URLConf permite que las rutas que maneje Django seán agradables y entendibles para el usuario.
Si consideramos al URLConf en el esquema anterior tendríamos este resultado más completo.
LOS ARCHIVOS PREDETERMINADOS
Otra parte importante es entender el propósito de los archivos que se crean de manera predeterminada, estos son:
ARCHIVOS DEL PROYECTO
- __init__.py: Este es un archivo vacío que le dice a Python que debe considerar este directorio como un paquete de Python. Si se desea saber más, se puede consultar la documentación sobre los paquetes.
- manage.py: Este archivo contiene una porción de código que permite interactuar con el proyecto de Django de muchas formas. Si se desea mayor detalle se encuentra ladocumentación oficial con respecto a manage.py.
- settings.py: Este archivo contiene todas las configuraciones para el proyecto, la documentación al respecto puede darnos mas detalles de la configuración de un proyecto en Django.
- urls.py: Contiene las rutas que están disponibles en el proyecto, manejado por URLConf, los detalles completos como siempre en la documentación oficial nos da mas detalles sobre las urls y Django.
ARCHIVOS DE LA APLICACIÓN
- __init__.py: La misma descripción anterior (líneas arriba).
- models.py: En este archivo se declaran las clases del modelo.
- views.py: En este archivo se declaran las funciones de la vista.
- test.py: En este archivo se declaran las pruebas necesarias para la aplicación, para mayor detalle sobre las pruebas y Django se puede consultar la documentación del proyecto.
Una vez que tenemos claro el funcionamiento básico de Django, desarrollemos un ejemplo dentro del proyecto que iniciamos la semana pasada, para experimentar por nuestra cuenta.
MODELO, VISTA Y PLANTILLA EN 15 MINUTOS
Antes de continuar, deben entender que esto solamente es un pequeño ejemplo, el modelo, vista y plantillas serán desarrolladas a detalle en las próximas semanas. Si existen dudas del porque de las instrucciones, estas serán resueltas a detalle en los siguientes capítulos. Si eres muy impaciente siempre tienes a disposición la documentación oficial del proyecto.
Nuestro proyecto debe tener una estructura similar a esta:
Tendremos que manejar para este proyecto 6 archivos:
- models.py (ya existe dentro de la carpeta principal).
- views.py (ya existe dentro de la carpeta principal).
- admin.py (aún no existe, pero estará dentro de la carpeta principal).
- urls.py (ya existe dentro de la carpeta recetario).
- settings.py (ya existe dentro de la carpeta recetario).
- lista_bebidas.html (aún no existe, estará dentro de una carpeta en la carpeta recetario).
MODELS.PY
Al principio models.py luce asi:
Usamos nuestro editor de texto favorito para editar models.py y redactamos lo siguiente:
from django.db import models class Bebida(models.Model): nombre = models.CharField(max_length=50) ingredientes = models.TextField() preparacion = models.TextField() def __unicode__(self): return self.nombre
VIEWS.PY
views.py luce así al principio:
Igualmente con nuestro editor favorito abrimos views.py y lo dejamos de la siguiente forma:
from principal.models import Bebida
from django.shortcuts import render_to_response
def lista_bebidas(request):
bebidas = Bebida.objects.all()
return render_to_response('lista_bebidas.html',{'lista':bebidas})
ADMIN.PY
Este archivo no existe, así que lo creamos manualmente dentro de nuestro directorio de la aplicación, en este caso dentro del directorio principal. Lo debemos dejar de esta manera:
from principal.models import Bebida from django.contrib import admin admin.site.register(Bebida)
URLS.PY
Este archivo ya existe, se encuentra dentro del directorio recetario, así que lo único que debemos hacer es modificarlo para dejarlo de la siguiente manera:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$','principal.views.lista_bebidas'),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)
SETTINGS.PY
Este archivo lo modificamos la semana pasada, se encuentra dentro de recetario. Debemos buscar la directiva TEMPLATE_DIRS (Debe encontrarse en la línea 113 aproximadamente). Debemos dejar esta sección de esta forma:
TEMPLATE_DIRS = (
os.path.join(RUTA_PROYECTO,'plantillas'),
)
En esta sección le estamos diciendo que debe buscar las plantillas dentro de la carpeta del proyecto, en una carpeta llamada plantillas, como esta carpeta aún no existe debemos crearla manualmente dentro de recetario.
LISTA_BEBIDAS.HTML
Este archivo no existe, lo crearemos manualmente dentro de la carpeta plantillas (si, esa que acabas de crear dentro de recetario).
Debes finalizar con una estructura similar a esta:
Una vez creado le ponemos la etiquetación HTML que nos permita visualizar la lista de bebidas. Podría quedarse de esta manera:
<!DOCTYPE html>
<html lang='es'>
<head>
<title>Lista de bebidas de ejemplo</title>
<meta charset='utf-8'>
</head>
<body>
<h1>Recetario de Bebidas</h1>
{% for elemento in lista %}
<ul>
<li><strong>{{elemento.nombre}}</strong></li>
<li>{{elemento.ingredientes}}</li>
<li>{{elemento.preparacion}}</li>
</ul>
{% endfor %}
</body>
</html>
NOTA: PYTHON ES SENSIBLE A LAS MAYÚSCULAS Y MINÚSCULAS
Tener precaución al momento de digitar el código en Python, las mayúsculas y minúsculas importan y mucho.
PONER EN FUNCIONAMIENTO TODO
Listo, tenemos todo listo para ver funcionando nuestro ejemplo, para ello debemos de sincronizar nuevamente nuestra base de datos, para ello, nos ubicamos en la carpeta principal del proyecto (aquella donde se encuentra el archivo manage.py). Una vez en la carpeta principal, desde una terminal digitamos:
python manage.py syncdb
Esto nos dará el siguiente resultado: (prestar atención a la segunda línea que nos indica la creación de una nueva tabla):
Una vez realizado esto, lanzamos nuestro servidor de desarrollo:
python manage.py runserver
Nos ubicamos en http://127.0.0.1:8000/admin, ingresamos con nuestros datos configurados en la primera vez que sincronizamos la base de datos (si no recuerdas los datos que pusiste, puedes borrar el archivo recetario.db y volver a digitar: python manage.py syncdb para resincronizar).
Una vez dentro de la interfaz administrativa veremos: (notar que aparece una opción Bebidas).
Podemos seguir intuitivamente la interfaz e ingresar datos:
Una vez guardados podemos ir a http://127.0.0.1:8000/ y veremos lo que acabamos de ingresar. De esta manera ya tienes una interfaz rápida de ingreso y visualización de datos.
Hay muchos puntos que en este capítulo he tenido que tocar superficialmente, esto no debe preocuparte, porque en los siguientes capítulos desarrollaré a detalle esos puntos, deseo recordarte que el objetivo de este pequeño ejemplo, es disfrutar la experiencia de la velocidad de Django, para el desarrollo de aplicaciones.
Si desean ver los archivos oficiales del proyecto, no olviden que pueden acceder al repositorio del mismo en github. Los datos de acceso para la interfaz administrativa del ejemplo del repositorio son los siguientes:
- usuario:sergio
- clave:maestros
La próxima semana tendremos el capítulo dedicado a El Modelo. Muchas gracias por sus comentarios en el capítulo anterior, eso enriquece mucho más cada capítulo.
DJANGO: INSTALACIÓN Y APLICACIÓN (Parte I)
En esta oportunidad quiero compartir el trabajo realizado en la web maestrosdelweb, el cual me ha parecido un trabajo muy valioso, muy explicativo.
REQUISITOS PARA SU INSTALACIÓN
Django es un framework hecho en Python, por lo tanto se necesita que hayas previamente instalado Python (2.6 o 2.7) y tengas a la mano tu editor de texto favorito. Si no sabes que editores de texto usar, o como instalar Python lee la primera parte de la Guia Python, con esto es suficiente para empezar a trabajar.
NOTA: DJANGO Y PYTHON 3.0
Django no funciona con Python 3.0 actualmente, debido a incompatibilidades con el intérprete de Python.
Al estar hecho en Python, sería bueno tener en cuenta la sintaxis y fundamentos de este lenguaje, así que si aún no lo sabes y quieres reforzar tus conocimientos, revisa la guía de Python primero antes de continuar con esta, o da un vistazo a este video de mejorando.la
OBTENER DJANGO
Para obtener Django se puede:
- Descargar la versión estable oficial más reciente, desde el sitio oficial de Django y descomprimir el archivo, debe aparecer una carpeta con el nombre de Django seguido del número de la versión bajada. (Para esta guía usaremos la versión 1.4)
- Obtener la versión de desarrollo desde el repositorio de Django, para ello se debe usar Subversión, de esta manera:
svn co http://code.djangoproject.com/svn/django/trunk/
Una vez que se ha obtenido Django, es momento de instalarlo.
PYTHON Y LAS VARIABLES DE ENTORNO EN WINDOWS
Los usuarios de Windows deben asegurarse de tener Python dentro de las variables de entorno, esto servirá para poder instalar Django y usarlo fácilmente. Si no sabes como hacerlo, mira el siguiente vídeo:
INSTALAR DJANGO
Una vez que se descomprime el archivo descargado, debemos acceder a la carpeta desde una terminal o ventana de comandos (en caso de los usuarios de Windows). Suponiendo que la versión que elegimos es la 1.4, se tendría que digitar:
cd Django-1.4
Ya en la carpeta de instalación de Django, se debe digitar la siguiente instrucción: (Debes de tener permisos de administrador)
python setup.py install
Si usas Ubuntu GNU/Linux, sería algo así:
sudo python setup.py install
Listo eso es todo, ya tienes Django instalado. Si se desea mayor información de como instalarlo o quizás algunas otras opciones, siempre está la documentación del mismo proyecto para guiarnos. Aquí pueden encontrar la Guía completa de instalación de Django.
Si usas OS X Lion, quizás lo más recomendado sería instalar Django usando pip:
Primero, debemos tener Setup Tools para instalarlo, lo descargamos, lo descomprimimos y dentro del directorio (via el terminal)
Primero, debemos tener Setup Tools para instalarlo, lo descargamos, lo descomprimimos y dentro del directorio (via el terminal)
sudo python setup.py install
Una vez con Setup Tools instalado usamos pip:
sudo pip install Django
PRIMER PROYECTO
Antes de empezar es bueno aclarar que la versión que vamos a utilizar en esta guía es la más reciente (1.4), y varias cosas han cambiado, la información que podrían encontrar en Internet probablemente se encuentre desactualizada.
Para crear nuestro primer proyecto, abrimos una terminal (o ventana de comandos si asi lo conoces en windows), nos ubicamos en la carpeta en donde queremos crear nuestro proyecto y digitamos:
django-admin.py startproject recetario
Esta instrucción creará dos directorios con el nombre del proyecto (en este caso: recetario) y 5 archivos distribuidos de la siguiente manera:
- manage.py
- recetario
- __init__.py
- settings.py
- urls.py
- wsgi.py
Para ver que el proyecto está funcionando en la terminal debemos escribir:
python manage.py runserver
Al ejecutar esa instrucción debemos visualizar un resultado como el siguiente:
Abrimos el navegador web la dirección http://127.0.0.1:8000/ y debemos ver lo siguiente:
Ya tenemos nuestro proyecto creado. 
En el caso de que nos salga un error porque el puerto asignado esta en uso como la siguiente imagen:
sólo debemos indicar que puerto usaremos para lanzar el servicio, por ejemplo si se desea usar el puerto 8888 entonces se tendría que digitar:
python manage.py runserver 8888
Usaríamos la dirección http://127.0.0.1:8888/ y tendríamos como resultado lo siguiente:
Cada proyecto necesita de aplicaciones donde se puedan gestionar los modelos y las vistas. Un proyecto puede tener muchas aplicaciones:
PRIMERA APLICACIÓN
Para crear nuestra primer aplicación, desde la terminal y en la carpeta del proyecto, debemos digitar:
python manage.py startapp principal
Esto creará un directorio y cuatro archivos más, lo que nos dejaría con una estructura de archivos como esta:
- manage.py
- recetario
- __init__.py
- settings.py
- urls.py
- wsgi.py
- principal
- __init__.py
- models.py
- test.py
- views.py
EL PODEROSO SETTINGS.PY
Una parte muy importante del proyecto es el archivo settings.py, este archivo permite configurar la conexión a la base de datos, la zona horaria, el idioma, los directorios principales del proyecto, las aplicaciones del proyecto, entre otras cosas.
Aprender a configurar este archivo permite optimizar el funcionamiento del proyecto, veremos las instrucciones principales a configurar:
CODIFICACIÓN DE CARACTERES
Nuestro idioma esta lleno de caracteres especiales como las tildes y las eñes que son las más comunes, la primera sugerencia para manejar esto eficientemente en django debemos agregar la siguiente línea al archivo settings.py
#encoding:utf-8
RUTA DEL PROYECTO
Una configuración importante es configurar la ruta del proyecto, esto permitirá lanzar la aplicación desde cualquier directorio y mover el proyecto a cualquier computador con Django instalado. Para ello debemos escribir las siguientes líneas en el archivo settings.py:
# Identificando la ruta del proyecto import os RUTA_PROYECTO = os.path.dirname(os.path.realpath(__file__))
RUTA DEL PROYECTO
Si no se configura la ruta del proyecto, cada vez que se cambia de directorio o de PC, se tendrá que cambiar las rutas de las plantillas, archivos estáticos y directorio de subida de contenido de los usuarios.
ADMINISTRADORES
Cuando Django tiene la opción de DEBUG=False, las notificaciones de error de código deben ser enviadas vía correo electrónico a los administradores, junto con
los detalles completos del error. Para poner los datos de los administradores debemos buscar la siguiente porción:
los detalles completos del error. Para poner los datos de los administradores debemos buscar la siguiente porción:
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
Y modificarla para que quede con los nombres de los administradores en forma de tupla, en mi caso lo dejaré así:
ADMINS = (
('Nombre y Apellidos', 'raulsergio9@gmail.com'),
)
CONFIGURACIÓN DE LA BASE DE DATOS
También podemos configurar la conexión a la base de datos según nuestras necesidades, Django soporta de manera predeterminada la conexión con postgresql, mysql, sqlite3 y oracle. En nuestro proyecto usaremos sqlite3.
Debemos buscar la siguiente sección del archivo:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Y dejarla de la siguiente manera:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'recetario.db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
ZONA HORARIA
Django permite configurar la zona horaria del proyecto, la lista de zonas horarias disponibles se pueden encontrar en la wikipedia. Para configurar debemos buscar lo siguiente:
TIME_ZONE = 'America/Chicago'
Yo lo configurare en la zona horaria de Lima/Perú, así que lo modificare de esta forma:
TIME_ZONE = 'America/Lima'
CONFIGURACIÓN DEL IDIOMA
Django también permite configurar el idioma que usará de manera predeterminada para su funcionamiento, para configurar esto debemos buscar lo siguiente:
LANGUAGE_CODE = 'en-us'
Se puede consultar la lista de idiomas disponibles para adecuarlo a nuestras necesidades, yo lo configurare como español de Perú:
LANGUAGE_CODE = 'es-PE'
APLICACIONES INSTALADAS
Un proyecto en Django necesita de aplicaciones, algunas ya vienen configuradas de manera predeterminada. En nuestro proyecto usaremos la aplicación de administración y su documentación, estas ya vienen construidas, y también nuestra primera aplicación creada líneas arriba, llamada principal. Para habilitar estas aplicaciones debemos buscar la siguiente sección que se encuentra casi al final del archivo settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
Y modificarlas de la siguiente manera:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'principal',
)
OTRAS OPCIONES DE SETTINGS.PY
Existen otras configuraciones que iremos modificando durante el desarrollo del curso, como el directorio de plantillas, el contenido estático, los archivos cargados por los usuarios, entre otras. Por ahora con estas instrucciones tenemos lo básico para continuar con nuestro proyecto.
CREACIÓN DE LA BASE DE DATOS
Hasta el momento no se ha creado la base de datos o las tablas predeterminadas del proyecto, solo se ha configurado los parametros de conexión. Para crear la base de datos, debemos digitar desde la terminal o ventana de comandos, la siguiente instrucción (recordar que debemos estar en la carpeta de proyecto para que todo se realice correctamente):
python manage.py syncdb
Esta instrucción deberá mostrar el siguiente resultado:
Hay una pregunta que debemos responder, se refiere a la creación de un superusuario (un administrador del proyecto), para lo cual respondemos: yes (en caso de responder negativamente, no podremos usar inmediatamente el administrador predeterminado de Django). Luego de ello completamos la información que nos solicita.
Al finalizar ya estará creada la base de datos, como en este proyecto se usara sqlite3, debera aparecer un archivo nuevo llamado recetario.db, este contiene las tablas y los datos iniciales del proyecto.
LAS DIRECCIONES URL DEL PROYECTO
Para poder visualizar los cambios que hicimos y la interfaz administrativa de Django, aún falta modificar un archivo mas, este es: urls.py (recordar que este archivo se encuentra dentro del directorio recetario). Este archivo contiene lo siguiente:
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'recetario.views.home', name='home'),
# url(r'^recetario/', include('recetario.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
)
Debemos dejarlo de esta manera:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)
EJECUCIÓN DEL PROYECTO
Una vez que tenemos todo listo y configurado, debemos nuevamente iniciar el servidor de desarrollo que tiene el proyecto. Ya hicimos esto al principio, solo debemos digitar desde la terminal nuevamente (dentro del directorio del proyecto):
python manage.py runserver
Lucirá de esta manera:
Nos muestra un error 404, luego veremos el por qué. Para ingresar a la interfaz administrativa que ya viene construida con Django, ingresaremos a la dirección: http://127.0.0.1:8000/admin, en donde debemos poner el nombre del superusuario y su respectiva contraseña, creados anteriormente (líneas arriba) con la opción syncdb.
Si todo fue correcto debemos visualizar la interfaz administrativa:
Nuestro primer proyecto ya se encuentra configurado para continuar con la construcción de los modelos. Sin embargo antes de ello debemos entender como funciona Django, ese será nuestro próximo capítulo: Entendiendo como trabaja Django.
REPOSITORIO DEL PROYECTO
El proyecto se encuentra en github por si te perdiste de algo y deseas ver algún archivo del mismo.
Suscribirse a:
Entradas (Atom)