introducción a django

31

Upload: julio-galvez

Post on 12-Apr-2017

438 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Introducción a Django
Page 2: Introducción a Django
Page 3: Introducción a Django

Características

• Framework web• Escrito en Python• Desarrollo rápido• Limpio• DRY• MTV• Admin automático

Page 4: Introducción a Django

Características

• No usa punto y coma• No usa llaves de apertura/cierre• Tabulaciones obligatorias• Código Legible

Page 5: Introducción a Django

MTV

• Mapeo Objeto-Relacional (M)• URL's y Vistas (V)• Plantillas (T)

Page 6: Introducción a Django

Primer Proyecto

django-admin startproject blog

Page 7: Introducción a Django

Estructura

blog/ manage.py blog/

__init__.py settings.py urls.py wsgi.py

Page 8: Introducción a Django

Sincronizar BD

python manage.py migrate

Page 9: Introducción a Django

Correr servidor

python manage.py runserver

Page 10: Introducción a Django

Crear Aplicación

python manage.py startapp blog

Page 11: Introducción a Django

Crear Aplicación

blog/ __init__.py admin.py migrations/ __init__.py models.py tests.py views.py

Page 12: Introducción a Django

Tablas

Tablas = Class

No hay Sintaxis SQL

ID’s e índices automáticos

Relación por Clase, no por ID

Page 13: Introducción a Django

Clases

class Articulo(models.Model): titulo = models.CharField(max_length=100) contenido = models.TextField() tags = models.TextField(blank=True, null=True)

def __str__(self): # __unicode__ on Python 2

return self.titulo

Page 14: Introducción a Django

Clases

class Comentario(models.Model): articulo = models.ForeignKey(Articulo) comentario = models.TextField()

def __str__(self): # __unicode__ on Python 2

return self.comentario

Page 15: Introducción a Django

Shell

python manage.py shell

Page 16: Introducción a Django

Importar Modelos

from blog.models import Articulo, Comentario

Page 17: Introducción a Django

Ejemplo SQL

select comentario, titulo from Comentario LEFT JOIN Articulo ON Articulo.id = Comentario.id_articulo

Page 18: Introducción a Django

Ejemplo Django

c = Comentario.objects.all()

c.articulo.titulo

Page 19: Introducción a Django

Ejemplos

select * from Articulo where id = 5

Articulo.objects.get(id=5)

Page 20: Introducción a Django

Ejemplos

select * from Articulo where id = 5 order by titulo

Articulo.objects.filter(id=5).order_by('titulo')

Page 21: Introducción a Django

Ejemplos

select * from Articulo where id > 5 order by titulo

Articulo.objects.filter(id__gt = 5).order_by('titulo')

Page 22: Introducción a Django

Ejemplos

select * from Blog where id > 5 order by titulo DESC

Articulo.objects.filter(id__gt = 5).order_by('-titulo')

Page 23: Introducción a Django

Ejemplo Insert

INSERT INTO Articulo (‘titulo’, ‘contenido’, ‘tags’) VALUES (‘mi libro’, ‘bla bla bla’, ‘libro, personal, bla bla’);

a = Articulo()a.titulo = ‘mi libro’a.contenido = ‘bla bla bla’a.tags = ‘libro, personal, bla bla’a.save()

Page 24: Introducción a Django

Ejemplo Update

UPDATE Articulo SET titulo=‘no era mi lilbro’ WHERE id = 5

a = Articulo.objects.get(id=5)a.titulo = ‘no era mi libro’a.save()

Page 25: Introducción a Django

Ejemplo Delete

DELETE FROM Articulo WHERE id = 5

a = Articulo.objects.get(id=5)a.delete()

Page 26: Introducción a Django

Admin

localhost:8000/admin

Page 27: Introducción a Django

admin.py

from .models import Articulo, Comentario

admin.site.register(Articulo)admin.site.register(Comentario)

Page 28: Introducción a Django

Vista Post Lista

def lista_post(request): posts = Articulo.objects.all().order_by(‘id’) return render(request, ‘blog/lista.html’, locals() )

Page 29: Introducción a Django

Template Lista

{% for p in posts %} <div class=‘post’> <h2> <a href=‘/detalle/{{ p.id }}’ >{{ p.titulo }}</a> </h2> <p> {{ p.contenido }} </p> </div> {% endfor %}

Page 30: Introducción a Django

Vista Detalle Post

def detalle_post(request, id_post): post = Articulo.objects.get(id = id_post) comentarios = Comentario.objects.filter(articulo = post)

return render(request, ‘blog/detalle.html’, locals() )

Page 31: Introducción a Django

Template Lista

<div class=‘post’> <h2>

{{ post }} </h2> <p> {{ post .contenido }} </p> </div>

{% for c in comentarios %} <p> {{ c }} </p> <hr />{% endfor %}