Social

En este post os comparto una manera simple de tener un login con Flask que poder utilizar en vuestros proyectos.

De esta manera podréis autenticar usuarios y limitar el acceso.

Podeis encontrar todo el codigo en mi repositorio de Github:

https://github.com/xavigm/flask-login-example/

Aquí te explico por encima como funciona.

Para realizarlo utiliza el metodo de flask.login, y cuando comprueba si el usuario indicado a través del formulario coincide con el guardado en la base de datos, lo llama.

  • En el archivo main.py se importan las librerías necesarias, comprobamos que exista el fichero de la base de datos, y además configuramos la aplicación. Encontramos 3 rutas diferentes:
  • /: cuando ya está logueado
  • /login: donde te redirige si no estás logueado y te muestra el formulario. También valida el usuario y lo loguea si es correcto.
  • /logout: Donde elimina la sesión y desloguea

En el archivo login.py están definidas las funciones que válida si el usuario existe en la base de datos.

En el fichero database.py es donde se define la conexión con la base de datos, en este caso SQLite.
Por defecto crea un usuario admin.

He utilizado un template HTML5 de Creative Tim para dejarlo bonito.

Puedes probar el proyecto siguiendo estos simples pasos (necesitas tener python y pip instalados):

git clone https://github.com/xavigm/flask-login-example.git cd flask-login-example.git pip -r install requirements.txt

Una vez instalados las librerias necesarias, podemos ejecutarlo con:

python main.py

2.6.0 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.

* Serving Flask app ‘main’

* Debug mode: off *

Running on http://127.0.0.1:5000 (Press CTRL+C to quit)

Y ya podremos abrirlo en el navegador:

Como ves es muy simple, y a partir de aquí puedes aplicarlo en tus proyectos o partir desde aquí.
Espero que te haya sido útil, si es así, ¡compártelo por favor!


Xavi Gonzalez

Actualmente DevOps Engineer en MotoGP (Dorna Sports). Apasionado de GNU/Linux y del software libre. Me gusta trastear con cualquier gadget, y rodar en moto.

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*