Campo de fecha con calendario en formulario de Django

Campo de fecha con calendario en formulario de Django

Todos los navegadores web modernos tienen la capacidad de desplegar un calendario en los campos de fecha de un formulario. Sin embargo, al querer aprovechar esta funcionalidad en un proyecto de Django hay que tener ciertas consideraciones para evitar errores en la validación del formulario. He aquí cómo hacerlo. En primer lugar, necesitamos un formulario… Seguir leyendo

El módulo «operator» y la programación funcional

El módulo «operator» y la programación funcional

La programación funcional es un paradigma que consiste en construir un programa a partir de pequeñas funciones que realizan tareas específicas y que pueden ser pasadas como argumentos a otras funciones para expresar operaciones complejas. El módulo estándar operator facilita la implementación de programas según el paradigma funcional (junto con los módulos functools e itertools)… Seguir leyendo

Reproducir inyección SQL en sqlite3 y PyMySQL

Reproducir inyección SQL en sqlite3 y PyMySQL

La inyección de código SQL es un tipo de vulnerabilidad informática que permite a un usuario no autorizado ejecutar consultas SQL en una base de datos y que puede darse en cualquier tipo de aplicación (de consola, web, de escritorio, móvil). Para que un programa genere este tipo de vulnerabilidad es necesario que le permita… Seguir leyendo

Examinar archivo o carpeta en Tk (tkinter)

Examinar archivo o carpeta en Tk (tkinter)

Tk provee funciones para desplegar diálogos para examinar archivos o carpetas en Windows, Linux (o cualquier otro sistema basado en Unix) y macOS. En Python las funciones son accesibles a través del módulo tkinter.filedialog. Las principales son: askopenfilename() / askopenfilenames() askdirectory() asksaveasfilename() Las funciones askopenfilename() y askopenfilenames() muestran un diálogo para abrir uno o más… Seguir leyendo

Múltiples configuraciones (desarrollo/producción) en Django

Múltiples configuraciones (desarrollo/producción) en Django

En una aplicación de Django seguramente querremos distinguir dos o más configuraciones; por ejemplo, tener configuración una para el escenario de desarrollo y otra para el de producción. Existen varias alternativas para conseguir esto. Sin embargo, la idea es siempre la misma: dado que la configuración se realiza típicamente dentro del archivo settings.py ubicado en… Seguir leyendo

Barra de desplazamiento (Scrollbar) en Tk (tkinter)

Barra de desplazamiento (Scrollbar) en Tk (tkinter)

La barra de desplazamiento es un control de Tk que permite modificar el área visible (viewport) de otros controles. La barra de desplazamiento puede ser vertical u horizontal, y típicamente se añade a controles que muestran múltiples elementos, líneas o columnas, como la lista (tk.Listbox), la vista de árbol (ttk.Treeview) o la caja de texto… Seguir leyendo

Enviar correo electrónico vía Outlook y SMTP

Enviar correo electrónico vía Outlook y SMTP

El servicio de correo electrónico de Microsoft, Outlook (antes Hotmail), permite a los desarrolladores de aplicaciones enviar mensajes a través del protocolo SMTP. Los datos del servicio son los siguientes: Dominio: smtp-mail.outlook.com Puerto: 587 Protocolo de seguridad: TLS Con esta inforomación y el auxilio de los módulos estándares email y smtplib, podemos emplear el siguiente… Seguir leyendo