Django Guia Rapida I - Crear proyecto web


Django es un framework para desarrollo web con el lenguaje python.

Django usa el paradigma de desarrollo MVC y ofrece herramientas para desarrollo rapido y fácil.

Segun opiniones de usuarios en foros y sitios web es una buena opción y fácil de aprender.



Lo he estado probando en estos dias y realmente se pueden obtener resultados en poco tiempo, ciertamente ofrece buenas herramientas que te evitan escribir todo desde abajo, por ejemplo al desarrollar un clasico y sencillo CRUD se hace fácil y rapidísimo.



No soy muy versado aún en Django, de hecho no lo he usado ni dos semanas y ya realize un par de proyectos de prueba con un buen nivel de avance, por lo tanto su curva de aprendizaje realmente es rapida, anotar tambien que tampoco soy muy ducho en python. Python lo he estudiado (hace mucho) pero nunca lo he usado tampoco en desarrollar algo significativo.



No todo son miel sobre hojuelas así que tampoco quiero decir que Django te hace todo sin problemas, aunque en particular en pocos dias he obtenido avances considerables hay que considerar que por otro lado ayuda la experiencia en desarrollo web, en html, css, javascript y desarrollo con el modelo MVC. Así que para entrarle a Django debes tener algo de conocimiento de MVC, html y desarrollo web.


En resumen Django ofrece buenas herramientas para generar un proyecto base y centrarte en la logica de negocio, lo que debe hacer todo buen framework, es rapido de aprender a implementar, como dije llevo apenas dias usandolo y ya obtuve resultados, en comparativa los frameworks de j2ee tambien los estoy estudiando, desde hace semanas, y he tenido menores avances en cuanto a poder desarrollar algo sustancial.


En internet hay numerosas fuentes de manuales y ejemplos de desarrollo de proyectos basicos en Django, algunos me han parecido un tanto confusos ya que ponen los pasos y el codigo de ejemplo pero no explican muy bien lo que se está haciendo. Por ello decidí escribir mi propia guia de pasos para iniciar en Django, pero si lo leen y estan empezando Django desde cero recomiendo buscar mas fuentes y ver la documentacion oficial.


Dividire mi guía en varias partes y como ejemplo crearemos una web para manejar una muebleria, empezamos.


Lo primero es instalar python, lo segundo es instalar Django. Ambos pasos son similares a instalar cualquier software y no es mi intención entrar en ese tema, pero si alguien quiere mas datos pueden ver estos enlaces (para windows, si usas linux casi seguro ya tienes instalado python) instalar python e instalar Django, para lo que sigue vamos a considerar que ya se instaló y configuró tanto python como Django.


Otra nota importante antes de empezar, al trabajar en Django hablaremos del proyecto, de apps, del modelo y entidades, si conoces MVC o has trabajado frameworks sabras de que se trata cada cosa, si no, es importante que lo investigues, en muchos ejemplos que ví sobre Django una entidad se llamaba, por ejemplo: Casa, y una app se llamaba casa, y el proyecto micasa, a veces hay que configurar archivos del proyecto, a veces de una app y a veces el modelo.


Entonces sucedia que en la guia o manual que yo leia nos indicaba abrir el archivo del directorio casa, instanciar la entidad casa llamar la vista casa_form y redireccionar a la url casa... !!? Por lo anterior tratare de ser claro con ese tipo de cosas y para que todo funcione bien es necesario distingir cada caso (y cada casa, jejej no es cierto es cada CASO) y respetar la estructura de directorios ya que a menudo habra situaciones donde el archivo urls (por ejemplo) se encuentre en mas de una ubicación.


Ahora si (por fin) vamos a crear nuestro proyecto, abrimos una consola en el directorio donde vamos a trabajar, supongamos que es el siguiente:


c:/django/muebleria>

Paso 1-
Ejecutamos el comando siguiente:


> django-admin.py startproject muebleria

En nuestra carpeta se crea la siguiente estructura:


/
|- manage.py
|- muebleria
|- __init__.py
|- settings.py
|- urls.py
|- wsgi.py

Paso 2-
Ahora vamos a configurar la conexión a la base de datos, abrimos en un editor de texto el archivo el siguiente archivo:


/muebleria/settings.py

Vamos a configurar como motor de bd mysql, en DATABASES ponemos lo siguiente:


DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'nombre_db',
'USER': 'user',
'PASSWORD': 'pwd',
'HOST': '',
'PORT': '',
}
}

Lo valores nombre_bd, user y pwd deben ser los respectivos de acuerdo a una base de datos que exista (de preferencia vacia sin tablas), y un usuario con su password para conectarse al server. Host lo deje vacio ya que es localhost, si en su caso es diferente indicar ahí el nombre o la ip del host, port lo deje vacio por ser el valor de default de mysql (3306), modificar si es necesario.


Paso 3-
Ya que estamos en este archivo vamos tambien a configurar tambien el idioma y la zona horaria, buscamos la linea:


LANGUAGE_CODE = 'en-us'

Y le ponemos:


LANGUAGE_CODE = 'es-MX'

Ahora buscamos la linea:


TIME_ZONE = 'America/Chicago'

La cambiamos por:


TIME_ZONE = 'America/Mexico_City'

Los valores que he puesto son de acuerdo al pais e idioma de México, pueden ver las opciones disponibles en idiomas Django y time zone opciones.


Paso 4-
Ahora hay que sincronizar la BD para crear las tablas base del sitio, con mysql corriendo y la bd ya creada, desde nuestra consola nos vamos al directorio /muebleria y ejecutamos el comando:


> python manage.py syncdb

En el proceso se nos pediran los datos para crear el administrador o superuser, hay que proporcionarlos, por ejemplo:


You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'pedro'): admin
Email address: admin@admin.com
Password: admin
Password (again): admin
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Podemos poner lo que queramos (en vez de admin) pero debe ser algo que podamos recordar, al escribir el password no sale por la pantalla pero yo lo he puesto a modo ilustrativo. Al hacer lo anterior nuestra bd ya tendra las tablas creadas y nuestro registro de administrador del sitio.


Paso 5-
Ahora vamos a activar el area de administracion del sitio, en el mismo archivo (/muebleria/settings.py) buscamos donde pone: installed_apps descomentamos la siguiente linea 'django.contrib.admin', queda algo asi:


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',
)

Paso 6-
Ahora abrimos el archivo /muebleria/urls.py y descomentamos las lineas 4 y 5 y la ultima linea que se encuentra dentro del arreglo patterns, quedando el contenido de la siguiente forma:


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'^$', 'muebleria.views.home', name='home'),
# url(r'^muebleria/', include('muebleria.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)),
)

Paso 7-
Sincronizar la BD de nuevo, comando:


> python manage.py syncdb

¡Y ya terminamos! tenemos en este momento un proyecto de sitio web creado, con la parte del administrador funcionando, podemos por ejemplo empezar a crear usuarios de nuestro sitio. Para ver el sitio trabajando en la consola ejecutamos el comando:


> python manage.py runserver

Y abrimos en nuestro navegador la url


http://localhost:8000/admin/

Para entrar se usan los datos de superuser proporcionados en la primer sincronizacion de la BD


En la siguiente parte crearemos una app, con su modelo (tablas en la bd) y su CRUD para el lado del administrador.

Comentarios

Entradas populares