Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Introducción a Django

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Introducción a Django
Introducción a Django
Wird geladen in …3
×

Hier ansehen

1 von 31 Anzeige

Introducción a Django

Herunterladen, um offline zu lesen

Introducción creada para el grupo interno de TecLid.
El contenido es libre para su uso, siempre y cuando sea de interés y útil ;)

Introducción creada para el grupo interno de TecLid.
El contenido es libre para su uso, siempre y cuando sea de interés y útil ;)

Anzeige
Anzeige

Weitere Verwandte Inhalte

Ähnlich wie Introducción a Django (20)

Anzeige

Aktuellste (20)

Introducción a Django

  1. 1. Características • Framework web • Escrito en Python • Desarrollo rápido • Limpio • DRY • MTV • Admin automático
  2. 2. Características • No usa punto y coma • No usa llaves de apertura/cierre • Tabulaciones obligatorias • Código Legible
  3. 3. MTV • Mapeo Objeto-Relacional (M) • URL's y Vistas (V) • Plantillas (T)
  4. 4. Primer Proyecto django-admin startproject blog
  5. 5. Estructura blog/ manage.py blog/ __init__.py settings.py urls.py wsgi.py
  6. 6. Sincronizar BD python manage.py migrate
  7. 7. Correr servidor python manage.py runserver
  8. 8. Crear Aplicación python manage.py startapp blog
  9. 9. Crear Aplicación blog/ __init__.py admin.py migrations/ __init__.py models.py tests.py views.py
  10. 10. Tablas Tablas = Class No hay Sintaxis SQL ID’s e índices automáticos Relación por Clase, no por ID
  11. 11. 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
  12. 12. Clases class Comentario(models.Model): articulo = models.ForeignKey(Articulo) comentario = models.TextField() def __str__(self): # __unicode__ on Python 2 return self.comentario
  13. 13. Shell python manage.py shell
  14. 14. Importar Modelos from blog.models import Articulo, Comentario
  15. 15. Ejemplo SQL select comentario, titulo from Comentario LEFT JOIN Articulo ON Articulo.id = Comentario.id_articulo
  16. 16. Ejemplo Django c = Comentario.objects.all() c.articulo.titulo
  17. 17. Ejemplos select * from Articulo where id = 5 Articulo.objects.get(id=5)
  18. 18. Ejemplos select * from Articulo where id = 5 order by titulo Articulo.objects.filter(id=5).order_by('titulo')
  19. 19. Ejemplos select * from Articulo where id > 5 order by titulo Articulo.objects.filter(id__gt = 5).order_by('titulo')
  20. 20. Ejemplos select * from Blog where id > 5 order by titulo DESC Articulo.objects.filter(id__gt = 5).order_by('-titulo')
  21. 21. 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()
  22. 22. 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()
  23. 23. Ejemplo Delete DELETE FROM Articulo WHERE id = 5 a = Articulo.objects.get(id=5) a.delete()
  24. 24. Admin localhost:8000/admin
  25. 25. admin.py from .models import Articulo, Comentario admin.site.register(Articulo) admin.site.register(Comentario)
  26. 26. Vista Post Lista def lista_post(request): posts = Articulo.objects.all().order_by(‘id’) return render(request, ‘blog/lista.html’, locals() )
  27. 27. 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 %}
  28. 28. 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() )
  29. 29. Template Lista <div class=‘post’> <h2> {{ post }} </h2> <p> {{ post .contenido }} </p> </div> {% for c in comentarios %} <p> {{ c }} </p> <hr /> {% endfor %}

×