Mejorando Nuestro Login

Python Piura

Este es un post pequeñito donde vamos a demostrar como mejorar nuestro login que se ve un poco feo, para ello debemos crear un módulo de Python llamado forms.py en nuestra aplicación seguridad:
forms
Ahora vamos a crear una clase llamada FormularioLogin que va a heredar de AuthenticationForm, la herencia en Python se determina poniendo la clase de la que se va a heredar entre parentesis en la definición de la clase hija:

forms.py

¿Que cosa hemos hecho aquí?, sencillo hemos sobreescrito el comportamiento de los campos del formulario AuthenticationForm, expliquemos esto: primero se necesita acceder a cada uno de los campos del formulario, estos son ‘username’ y ‘password’, y se accede a ellos a través de la lista “fields”, luego accederemos a los widgets de cada uno de estos campos, el widget es el elemento o etiqueta html que se dibuja en el navegador, en este caso los dos son…

Ver la entrada original 124 palabras más

Anuncios

Logout y Protección de Vistas en Django

Python Piura

En el post anterior habiamos creado un login con Django ahora nos toca hacer lo mismo pero para salir de la sesión que habiamos iniciado, para ello vamos a modificar nuestro archivo urls.py para crear la url llamada salir que invoca al método logout definido en django:

Como podemos observar llamamos a la vista logout de django.contrib.auth.views, que nos permite terminar la sesión que hemos iniciado pasandole el argumento next_page que nos redirecciona a la url raiz de nuestro proyecto, osea al login.

Ahora vamos a utilizar la url creada, hacemos una modificación a nuestro archivo base.html para agregar un enlace de salida:

Con lo que tenemos lo siguiente:

salir

Ahora ya podemos dar click en salir y terminar la sesión que estamos utilizando, pero si observamos bien esto nos nos sirve de nada para proteger nuestra aplicación de accesos no deseados, es decir que un usuario sin estar logueado puede…

Ver la entrada original 164 palabras más

Login en Django

Python Piura

Hasta este momento hemos podido tener acceso sin ningún tipo de restricciones a nuestro proyecto tutorial, pero todos sabemos que en el mundo real, eso no funciona así, por lo tanto es necesario que creemos un login para que los usuarios puedan iniciar sesión, para ello vamos a rediseñar nuestro proyecto tutorial y vamos a agregar nuevas cosas, para hacer este pequeño post me he basado en estos artículos:

Formulario Login usando Class Based Views

El Libro de Django

Listo ahora si empecemos con todo:
Primero crearemos una aplicación llamada seguridad, donde vamos a manejar todo lo referente a los usuarios:

seguridad

Ahora vamos a decirle a nuestro settings.py que vamos a utilizar la aplicación seguridad:

Y redefinimos nuestro archivo urls.py principal de tal manera que al ingresar ya no apunte a la aplicación personas sino a seguridad:

Dentro de nuestra aplicación seguridad vamos a crear una vista llamada Login:

Expliquemos…

Ver la entrada original 496 palabras más

Uso de UpdateView

Python Piura

En este post vamos a terminar lo que dejamos inconcluso anteriormente, el uso de la clase UpdateView, como ya tenemos listo nuestro archivo personas.html, simplemente vamos a crear la clase y la url necesarias.

views.py

Ahora creamos nuestra plantilla modificar_persona.html:

Ahora le toca el turno a urls.py:

Nótese que la última url añadida es la de modificar persona, y funciona de manera parecida al detalle.

Ahora si hacemos que el enlace con el ícono del lapiz apunte a la url de modificar_persona:

personas.html

Con lo que tenemos lo siguiente:

modificar_persona

Saludos es todo por hoy.

Ver la entrada original

Uso de DetailView

Python Piura

Luego de haber visto el uso de TemplateView, CreateView y ListView, estos dos últimos los vimos de pasada casi sin mencionarlos, ahora vamos a agregar un par de nuevas funcionalidades a nuestro proyecto tutorial, para ello empezaremos modificando el archivo personas.html para agregarle un par de enlaces que nos van a permitir editar y ver el detalle de una persona en cuestión, en este post solamente cubriremos la funcionalidad de ver el detalle, posteriormente en otro post nos encargaremos de la funcionalidad de editar a la persona:

Nótese que en la cabecera de la tabla hemos puesto el encabezado acciones y que dentro del cuerpo de la tabla se ha agregado una columna que contiene dos enlaces: uno con el ícono de un libro y otro con el ícono de un lapiz, ambos son, para ver el detalle de la persona y el otro para editarlo.

tabla_nueva

Ahora vamos a implementar…

Ver la entrada original 136 palabras más

Uso de TemplateView

Python Piura

Vamos a trabajar con TemplateView para hacer una vista basada en clases, algo que ya hemos utilizado antes y que es bastante fácil de programar, para ello seguiremos con nuestro proyecto tutorial, primero le vamos a hacer unas pequeñas modificaciones para que se adapte a lo que necesitamos.
Editamos el archivo base.html para agregar un pequeño menú en la parte superior de la pantalla:

Tendremos algo como esto:

menu

Creamos un archivo llamado bienvenida.html para poner un aviso de bienvenida y de esta manera no ingresar directamente a nuestra tabla de personas, para ello debemos crear una vista usando TemplateView y agregar el url correspondiente:

bienvenida.html

Creamos una clase llamada Bienvenida, que hereda de TemplateView y le decimos que la plantilla a utilizar se llamará bienvenida.html.

views.py

En el archivo urls.py cambiamos la url raiz para que apunte a la clase Bienvenida y creamos una url llamada personas para mostrar la…

Ver la entrada original 75 palabras más

Generar Reportes en Excel desde Django

Python Piura

En ocasiones necesitamos tener nuestros reportes en alguna hoja de cálculo, o peor aún un cliente nos pide un reporte específico en excel ¿Cómo hacemos para generar reportes desde Django en excel?
En nuestra ayuda viene una librería muy interesante que se llama openpyxl, esta libreria nos permite generar contenido en los diferentes formatos de hojas de cálculo de Microsoft Office y soporta desde versiones antiguas hasta la versión Office 2010, para instalarla lo hacemos con nuestro viejo conocido pip:

Ahora vamos a trabajar usando el proyecto tutorial que creamos en el post pasado, aquí agregamos un botón adicional que nos va a permitir exportar el contenido de nuestra tabla de personas a excel, por lo tanto editamos el archivo personas.html y agregamos un botón adicional al que ya teniamos:

personas.html

Nótese que aún no ponemos el enlace en href para no tener ningún problema, mas adelante modificaremos esto…

Ver la entrada original 97 palabras más