Coffee bytes

Blog de desarrollo web con Python y Javascript

Autenticación usando JSON Web token JWT en Django

El lunes, 14 de junio de 2021 por Eduardo Zepeda
Tiempo de lectura: 5 minutos

Los JWT (JSON Web Tokens), se han popularizado enormemente, incluso algunos las consideran un reemplazo de los clásicos Tokens que usan otros frameworks, tales como DRF. Usar JWT o Tokens normales (SWT) para manejar sesiones es objeto de debates acalorados entre desarrolladores. ¿Qué es JWT? JWT es un estándar para la creación de tokens de

Leer más

Managers o manejadores personalizados en Django

El jueves, 27 de mayo de 2021 por Eduardo Zepeda
Tiempo de lectura: 4 minutos

Un Manager (o manejador) es la interfaz a través de la cual se proveen las operaciones de consulta o queries de la base de datos a los modelos de Django. Todos los modelos de Django tienen al menos un manager. Cada vez que usas el manejador de objetos (manager de aquí en adelante) en una

Leer más

Trigramas y búsquedas avanzadas con Django y Postgres

El lunes, 17 de mayo de 2021 por Eduardo Zepeda
Tiempo de lectura: 5 minutos

¿Qué pasa si el dedo de un usuario resbala por el teclado y escribe «parfume» en lugar de «perfume». Probablemente no querramos que nuestro usuario abandone el sitio porque no encontró ningún «parfume» en nuestro sitio web. Nuestro sitio web debería de devolverle los resultados que más se parezcan a lo que está buscando. Mira

Leer más

Búsquedas de texto con Django y Postgres

El jueves, 6 de mayo de 2021 por Eduardo Zepeda
Tiempo de lectura: 8 minutos

Algunas veces cuando tecleamos nos equivocamos en una letra, podemos repetirla, omitirla o cambiarla por otra. Ese error puede arrojar una serie de resultados diferentes en una búsqueda web, o incluso carecer de resultados. Quizás para un blog no represente una amenaza nada, pero para un ecommerce puede significar la perdida de una venta, y

Leer más

¿Qué es ngrok y como se relaciona con el localhost?

El jueves, 29 de abril de 2021 por Eduardo Zepeda
Tiempo de lectura: 3 minutos

Me topé con Ngrok intentando redirigir la notificación de un pago de Mercado Pago a mi localhost, para hacer pruebas. Funcionaba más o menos así. Mercado pago te otorgaba una dirección url a donde redigir al comprador para efectuara el pago. Una vez terminado el pago, Mercado Pago hacía una petición HTTP a cualquier dirección

Leer más

¿Cómo funcionan los permisos y grupos en Django?

El sábado, 17 de abril de 2021 por Eduardo Zepeda
Tiempo de lectura: 6 minutos

La primera vez que me enteré de que Django tenía un sistema de permisos, hace ya muchos años, me pareció algo bastante esotérico, sin mucha utilidad y fácil de replicar, que equivocado estaba en aquel entonces. Después me di cuenta de que el sistema de permisos integrado era una maravilla y ahorraba muchísimo código, además

Leer más

No cometas este error al usar arrays en Python

El miércoles, 7 de abril de 2021 por Eduardo Zepeda
Tiempo de lectura: 2 minutos

El otro día estaba resolviendo una kata en codewars, uno de los pasos del problema necesitaba de una matriz bidimensional, en palabras más mundanas: un array de arrays. En Python es súper sencillo crear una matriz bidimensional usando el operador de multiplicación, como si se tratara de números. arr = [0]*5 #[0, 0, 0, 0,

Leer más

¿Cómo subir múltiples imágenes en Django?

El martes, 30 de marzo de 2021 por Eduardo Zepeda
Tiempo de lectura: 4 minutos

Seguramente ya sabes como subir una imagen usando un modelo de Django pero, ¿y si no queremos subir una sino múltiples imágenes? Generando un entorno virtual Creemos primero un entorno virtual y entrémos en él. Si no conoces Pipenv o no sabes como usarlo, revisa mi entrada sobre Pipenv. pipenv shell Instalación de Django Primero

Leer más

¿Por qué deberías usar Django Framework?

El martes, 23 de marzo de 2021 por Eduardo Zepeda
Tiempo de lectura: 4 minutos

¿Por qué usar Django en un mundo donde todo es Javascript? ¿De verdad vale la pena aprender un Framework de Python en un ecosistema que se empecina en Frameworks escritos en Javascript? Pues yo creo que sí y a continuación te expongo algunas de las razones. Las ventajas de Django Su ORM es sencillo y

Leer más

Throttling en Nginx

El sábado, 13 de marzo de 2021 por Eduardo Zepeda
Tiempo de lectura: 4 minutos

El throttling en Ngnix nos permite limitar el número de peticiones a un cierto usuario. Lo anterior es útil para prevenir peticiones excesivas por parte de un usuario que mantengan el sistema ocupado. Por otro lado, también es una manera de disuadir intentos de averiguar una contraseña por fuerza bruta o incluso ataques DDOS. Si

Leer más