python-im-web-django-1-728

Django – Urls, vistas y templates

URLs

Tenemos un fichero de urls global, es una buena práctica crear un fichero de urls por app. Para ello debemos añadir al “urlpatterns” del fichero principal la línea *url(r’^’, include(‘app.urls’), namespace=“app”)), *

VISTAS

Las vistas pueden ser una función o una clase, que se reciben una petición y devuelven una respuesta (html, redirección, error 404, …). Por convención el fichero se nombra como views.py. Desde django 1.7 además de devolver un HttpResponse puede devolver un JsonResponse.

Definición

views.py

urls.py

Shortcuts

Render: debe recibir dos parámetros obligatoriamente request y nombre del template, también se pueden agregar otros parámetros opcionales, como por ejemplo el contexto de datos en forma de diccionario.

Redirect: devuelve un httpResponseRedirect, envia una redirección a otra url. Ejemplo:

Vistas de error

Para editar la vista de errores debemos agregar al fichero de urls el handler, por ejemplo, para el error 404:

TEMPLATES

Permiten separar correctamente python de html. Debemos de agregar el directorio de templates dentro de cada app. Si queremos utilizar otra opción debemos añadir a nuestro settings.py la variable “TEMPLATE_DIR” -> TEMPLATE_DIRS = [os.path.join(BASE_DIR, ‘templates’)]

Elementos de las templates:

Variables:{{variable}}

Estructuras de control:{% if condición %}{% endif %}

Etiquetas:{%tag%}, {%tag%}{%endtag%}

Filtros: {{variable | filtro}}

Herencia:{% extends “base.html” %}

Tags