 La url que apunta a “/” será resuelta por la vista llamada landing definida en el archivo views.py de nuestra app.
views.py
La url que apunta a “/” será resuelta por la vista llamada landing definida en el archivo views.py de nuestra app.
views.py
 landing.html
landing.html
 Resultado:
Resultado:
 El resultado sería el deseado. Sin embargo, aún estamos usando una simple función de Python. La forma más sencilla de resolver esta tarea cotidiana mediante class-based views es usando una de las clases genéricas que Django ofrece para ser usada como vista y renderizar un HTML. Es decir, la clase TemplateView.
Editando sólo el archivo de urls de la siguiente manera lograremos el mismo resultado:
urls.py
El resultado sería el deseado. Sin embargo, aún estamos usando una simple función de Python. La forma más sencilla de resolver esta tarea cotidiana mediante class-based views es usando una de las clases genéricas que Django ofrece para ser usada como vista y renderizar un HTML. Es decir, la clase TemplateView.
Editando sólo el archivo de urls de la siguiente manera lograremos el mismo resultado:
urls.py
 
- En la línea 2 importamos la clase TemplateView desde las vistas genéricas de Django. Esta es la que nos permite hacer el renderizado de un template simplemente instanciando de ella misma.
- En la línea 5 después de nuestra expresión regular indicando la URL que será atendida, indicamos que la vista que atenderá esa petición será una instancia de la clase TemplateView usando el método as_view y pasándole el nombre de nuestro template en el parámetro template_name.
 
- En la línea 2, importamos las case LandingView que vamos a crear en el nuestro views.py.
- Y en la línea 5, usando el método as_view, indicamos que la url “/” será resuelta por nuestra class-based view.
 
- En la línea 1 y 2 importamos la vista genérica y la librería para generar un número aleatorio.
- En la línea 4 creamos nuestra clase LandingView que hereda de TemplateView para poder usar todos los métodos y propiedades de esta última.
- Definimos el nombre de nuestro template en la línea 5 y redefinimos el método get_context_data que es el encargado de llevar los datos a nuestro template.
- Dentro del método en la línea 8 igualamos la variable context al resultado de ejecutar el método get_context_data antes de ser redefinido.
- En la línea 9 agregamos a context el número random entre 1 y 10.
- En la línea 10 regresamos el contexto de manera que quede actualizado en el template.
 Agregamos un párrafo en el template para escribir el número generado aleatoriamente.
landing.py
Agregamos un párrafo en el template para escribir el número generado aleatoriamente.
landing.py
 Resultado:
Resultado:
 TemplateView es sólo una class-based view genérica de todas las que encontramos en Django. Puedes consultarlas todas aquí o en la documentación oficial.
Recuerda que así como creamos nuestra propia class-based view heredando de TemplateView también puedes crear una más compleja heredando de View y así ahorrar algunas líneas de código, mejorar la legibilidad de tu proyecto y personalizar tus procesos. Si quieres conocer más a fondo su funcionamiento, puedes tomar el Curso Profesional de Backend de Platzi.
TemplateView es sólo una class-based view genérica de todas las que encontramos en Django. Puedes consultarlas todas aquí o en la documentación oficial.
Recuerda que así como creamos nuestra propia class-based view heredando de TemplateView también puedes crear una más compleja heredando de View y así ahorrar algunas líneas de código, mejorar la legibilidad de tu proyecto y personalizar tus procesos. Si quieres conocer más a fondo su funcionamiento, puedes tomar el Curso Profesional de Backend de Platzi.Educación online efectiva
Aprende con expertos de la industria
COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE
0 Comentarios
para escribir tu comentario








