Cargando



Django - Class Based Views

En este tutorial veremos los aspectos más importantes de los Class Based Views en Django.


mar 30 2014 04:40
Profesional
abr 03 2014 18:58
A partir de la versión 1.3 de Django se introdujo un cambio bastante significativo, esto fue incorporar la posibilidad de crear vistas a través de clases en vez de funciones como se había venido haciendo, al tratar los objetos de las vistas se genera la posibilidad de crear vistas más genéricas con lo cual podemos apegarnos más al principio DRY de no repetirse a sí mismo.

Class Based Views

En la actualidad las vistas no tienen que estar limitadas a ser funciones, esto es gracias a que en Django lo importante es poder obtener un elemento que pueda ser llamado, gracias a dicho enfoque podemos tener cierta libertad en como generamos los elementos que puedan ser llamados. Al construir vistas basadas en clases obtenemos los siguientes beneficios:

1
Su rango de configurabilidad es más alto.

2
Es mucho más sencillo personalizar al momento de crear proyectos especializados.

3
Podemos reutilizar los objetos con otros fines.


Es cierto que existen diferentes formas de crear clases, sin embargo, para mantener la uniformidad con el código Django debemos tratar de hacer nuestras clases similares a las clases genéricas del framework.

De todas formas al hacer esto una recomendación a tener en cuenta es que no se nos impide de crear las clases de la forma en que nuestra aplicación lo necesite inclusive si tenemos que diferir de las clases genéricas ya mencionadas.

Vista genérica Django.views.generic.base.View

Como todo inicio es difícil sin guía, Django nos facilita la entrada a este mundo ofreciéndonos su vista genérica, para utilizarla solo debemos hacer una subclase de ella y de esta forma tendremos una base.

Obviamente esta no hará lo que necesitamos desde un inicio, sin embargo podremos utilizar las siguientes funcionalidades:

1
Validación de argumentos pasados a la configuración de la vista.

2
Previene que se utilicen argumentos que estén nombrados como los métodos HTTP.

3
Recolecta los argumentos pasados en la configuración del URL.

4
Verifica que un método HTTP llamado sea soportado por la vista.

5
Automáticamente maneja las peticiones de opciones.


Como crear una Vista en una Clase

Ya hemos visto las diferentes características de lo que supone generar vistas con clases, inclusive hemos visto algunas ventajas, ahora pasaremos a ver cómo podemos plasmar en código lo que sabemos para poder obtener el resultado.

Veamos en la siguiente imagen una vista generada haciendo una subclase de la vista genérica de Django View:

django_classbasedviews.jpg


Hagamos un análisis del código, si nos fijamos estamos creando nuestra clase y le especificamos que debe ser una subclase de View por lo que obtendremos todas sus funcionalidades, luego especificamos que plantilla debe asociarse a la clase y por último sobrescribimos los métodos get y post, de esta forma podemos incorporar nuestra lógica.

Importante
Para hacer uso de la vista debemos declararla en nuestro patrón en la URL e indicarle que debe ser tratada como una vista utilizando el método as_view(), opcionalmente le podemos pasar el nombre de la plantilla en la cual debe retornar los resultados.


Para finalizar este tutorial veamos un ejemplo de lo antes mencionado en la siguiente imagen:


django_classbasedviews2.jpg


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X