Django, vistas basadas en clases (III): List View

Tras las Detail View, las vistas más simples de utilizar son las List View. Este tipo de vista nos ayudará a gestionar listas de objetos traídos de la base de datos. Al igual que las anteriores, podemos usarlas con sólo 2 líneas de código. Además, nos va a ayudar crear paginación, seleccionar tamaño de las […]

Django, vistas basadas en clases (II): Detail View

Hoy vamos a hablar de la vista basada en clases más fácil y simple de usar, Detail View. Esta vista nos permite acceder a un objeto en base de datos y mostrarlo con nuestra plantilla html en, literalmente, 2 líneas. Además tendrá comportamientos básicos asociados. Por ejemplo, si no encuentra el objeto, devolverá un error […]

Django, vistas basadas en clases (I): Introducción

Hace un año publiqué un un tutorial de Django para crear un blog. Django ha avanzado mucho recientemente. Uno de los cambios más importantes que se han producido es en las vistas. Las vistas (views) ahora son clases en lugar de ser funciones. Si queremos podemos seguir usando funciones pero las clases pueden ser muy […]

Threads en Python

Hace unos días, necesité utilizar threading en Python en el trabajo. Como sabéis, soy programador web. Necesitaba ejecutar un programa que suele tardar entre 1 y 4 minutos y tenía que ejecutarse como resultado de una petición web. Evidentemente, no puedo tardar en responder una petición todo ese tiempo, así que lo hice creando un […]

Leer carpetas y archivos con Python

Leer carpetas y saber los archivos que están en ellas es muy sencillo en Python. Vamos a utilizar las funciones listdir, isfile, join y walk. Si queremos ver todo el contenido de un fichero vamos a utilizar la función listdir a la que pasaremos el path del fichero en cuestión: from os import listdir for […]

Comprehension list en Python

¿Conocéis las Comprehension list de Python? Se trata de una forma rápida, limpia y sencilla de crear listas de valores. La idea es sustituir código como este: cuadrados = [] for x in range(10): cuadrados.append(x**2) Por código como este: cuadrados = [x**2 for x in range(10)] En ambos casos el resultado es el mismo. Una […]

Generadores en Python

Hoy quiero mostraros cómo usar generadores en Python. ¿Qué son los generadores? Son funciones que nos permitirán obtener sus resultados poco a poco. Es decir, cada vez que llamemos a la función nos darán un nuevo resultado. Por ejemplo, una función para generar todos los números pares que cada vez que la llamemos nos devuelva […]

Diferencia entre ‘is’ y ‘==’ en Python

Cuando se empieza en Python es bastante frecuente usar como sinónimos los comparadores is y ==. Aunque, en general, suelen funcionar de forma similar sus comportamientos no son exactamente iguales. is devolverá True si las dos variables apuntan al mismo objeto. == devolverá True si los valores de las variables son iguales. Para acabar de […]

Funciones en Python con Caché

Hay ocasiones en las que ejecutamos funciones una y otra vez con los mismos parámetros. Si esas funciones son operaciones matemáticas o accesos a bases de datos pueden llegar a tener un coste computacional o un tiempo de ejecución demasiado elevado. ¿Y si añadimos una caché a nuestra función? En el caso de Python es […]

Node.js: “Hola nuevo mundo”

¿Os acordáis cuando Javascript estaba a punto de morir? ¿Os acordáis cuando solo servía para validar algunos formularios e incordiarnos? ¿Recordáis aquellos tiempos en los que todos odiábamos Javascript? Javascript resucitó hace ya unos años. La llegada de los frameworks más conocidos como jQuery, YahooUI o Mootools y la popularización de AJAX le dieron una […]