Desarrollo de Aplicaciones Web Con Django

Descargar como odp, pdf o txt
Descargar como odp, pdf o txt
Está en la página 1de 33

Desarrollo de Aplicaciones Web

con

Carlos Aza Arriagada


@azuax

Qu es Django?

Es un Framework

Ok, y Qu es un framework?

Conjunto de libreras

Buenas prcticas y patrones de diseo

Programacin de alto nivel

Beneficios

Desarrollo gil

Testing

Funcionalidades integradas

Inconvenientes

Curva de aprendizaje

Quin lo usa?

Mente Software

Disqus

Instagram

Mozilla

OpenStack

Pinterest

Revisar:

http://www.djangosites.org/

Ficha tcnica

Lenguaje: Python

Versin Estable Actual: 1.5.5

Licencia: Open Source, BSD

Desarrollado por:

Django Software Foundation

Comunidad

Otros:

Gran cantidad de tutoriales, comunidad altamente activa

Es considerado un framework maduro

Caractersticas

Implementa el patrn MVC

ORM Integrado

Modelo de datos en Clases de Python

No se realizan consultas SQL (aunque se puede)

Implementacin de urls amigables

Pero lo llaman MTV

Configurables por el usuario

Sistema de templates

Integrado en el framework

Extensible a travs de filtros y tags

Cont. Caracterstics

Soporte para desarrollo de sitios multilenguajes

Permite implementar sistema de cache

Mejorar la velocidad

Usualmente: memcached

CRUD automtico

Django es un package de Python

Con Django-Admin
Con las ventajas de cualquier aplicacin Python

Diferencia entre Proyecto y Aplicacin

Elementos que componen un


Proyecto en Django

Settings

Models

Querysets

Managers

Templates

TemplateFilters

TemplateTags

Views

Urls

Forms

Tests

Demostracin

Se requiere hacer un sistema que pueda


administrar una biblioteca musical, es decir
poder:

Crear

Actualizar

LIstar

Borrar

(CRUD)

Modelo de datos

Requisitos previos

Tener Python instalado

Instalar pip

Instalar django

Python easy_install pip


Pip install django

Recomendacin: virtualenv

Inicializar el proyecto

Django-admin.py startproject nombre_proyecto

Estructura generada

Directorio nombre_proyecto

Es un package de python

Contiene la configuracin base del proyecto

Manage.py

Archivo que permite realizar acciones

Ej: Crear aplicaciones, sincronizar bd, etc

Urls.py

Configuracin base de las urls del proyecto

Wsgi.py

Configuracin para hacer deployment a servidor

Configuracin bsica de settings.py

Ingresar:
import os
import socket
PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))

Debug

Database

Time_Zone

Language_Code

Installed_apps

Crear una Aplicacin

Python manage.py startapp nombre_app

Para cada app, se crea:

Models.py

Views.py

Tests.py

Debemos crear

Urls.py

Templates/nombre_app/

Debemos agregarla en settings.py

Debemos agregarla en urls.py

Recomendacin: utilizar namespaces

Crear los Modelos

Estilo

Msico

Cancin

Disco

Crear tablas en la base de datos

Django las crea automticamente

Python manage.py syncdb

Se crean varias tablas ms

Asociadas a las otras apps instaladas

Forma fcil de cumplir con el


requerimiento

Django-Admin

Agregar a installed_apps

Agregar a urls.py

Crear admin.py en la app


from django.contrib import admin
from models import *
admin.site.register(NombreModel)

Revisando la interfaz del admin

Creado automgicamente

Funciona

Y muy bien

Se pueden personalizar los datos a mostrar


Se puede mostrar una interfaz mejorada
usando bootstrap
Se pueden programar acciones personalizadas

Forma ''extensa'' de resolver el


requerimiento

Debemos tener en consideracin:

Templates

Views

Forms

Urls

Configuremos los forms

Crear forms.py
from django import forms
from models import *
class ModelForm....

Programemos las views

Todas las views reciben un objeto request

Devuelven un objeto HttpResponse

Crear
from django.shortcuts import render

Usamos el form creado

Lo mostramos por pantalla...

Creamos el template

Django tiene su propio lenguaje de template

Considera:

Include

For

If

Imprimir variables

Y un largo etctera

Adems es extensible

Mejor an, considera herencia en los templates

Cont. Creamos los templates

Vamos a crear un template sencillo

Ttulo

Formulario

csrf_token

Enviamos por POST

Configuramos la url

Django permite administrar las urls de nuestras


views
Recomendacin: ponerles nombre
Las urls utilizan expresiones regulares para
identificar patrones
Ejemplo:
url(r'^edit/(?P<id>[0-9]+)/$', edit_view name='edit_view'),

Revisamos la Pgina

Debe mostrar el Formulario

Modifiquemos la view

Necesitamos recibir y guardar los datos

Verificamos que venga por POST

Instanciamos formulario con datos

Verificamos si es vlido

Redireccionamos en caso de ok

Sino, Django muestra los errores

Qu errores?

Asociados a configuracin del model

Agreguemos una nueva view

Listemos los datos

Querysets

Recomendaciones Finales

Aprender bien Python

Editor de texto

Sublime Text

Plugin: djaneiro

Utilizar south

Utilizar Debug-Toolbar

Control y gestin de actualizaciones a la bd


Monitoreo en etapa de desarrollo

Buscar packages que estn desarrollados

https://pypi.python.org/

Cont. Recomendaciones Finales

Aprender a utilizar las Class Based Views


La curva de aprendizaje es mayor que la de un
lenguaje de programacin tipo
Pero los beneficios a mediano plazo, valen la
pena
La mayor complejidad est en el deployment

Recursos interesantes

The Django Project

The Django Book

http://www.maestrosdelweb.com/editorial/curso-djangointroduccion/

Django Blog (Espaol)

http://www.djangobook.com/en/2.0/index.html

Curso Django

https://www.djangoproject.com/

http://django.es/blog/

El patrono de los informticos: San Google

Tiempo de Preguntas

Disclaimer:
"Es slo una charla demostrativa/Informativa"

El desafo para uds. es interesarse y aprender.


Si quieren ms informacin, resolver dudas o
comentarios:

[email protected]

Muchas Gracias!
P.s: Django Rules!!!

También podría gustarte