Conociendo a fondo el repositorio de Mejorando.la creado con Python y Django
En un artículo anterior te comentamos Cómo se utiliza Python y Django en Mejorando.la, hoy junto a Adán Sanchez seguimos comentando algunas funciones y herramientas que se pueden ver en el repositorio Github público del proyecto.
La parte fundamental de Django: El patron MTV
En el articulo anterior Adán ya nos había comentado sobre lo indispensable que es el “ceñirse fielmente” al patrón MTV (o MVC) al utilizar Django. Ahora hablemos de los templates, parte importante de este patrón.
Templates
Nos dice Adán que una de las partes más fuertes de Django es su motor de plantillas, el mismo permite abstraer completamente la presentación de las demás partes de la aplicación, esto gracias a etiquetas y filtros:
Filtros
“En las plantillas de Django hacemos uso de la rica cantidad de filtros que pone a nuestra disposición. Desde convertir a mayúsculas, eliminar etiquetas html y agregar saltos de línea.” comentó Adán y agregó que gracias a estos filtros es más fácil tener una clara separación entre datos, lógica y presentación.
Para dar formato a una fecha:
Ejemplo de filtros en plantillas
<p class=”fecha”>{{ video.fecha|date:"F • j"}}</p>
Algunas baterías incluidas o Módulos Django
Ya habíamos mencionado que Django es el framework con baterías incluidas, aqui te comentamos algunas de ellas:
Localización
Nos comenta Adán sobre GeoIP, una librería de localización basada en C: “La integración que trae Django con esta librería da mucho poder a la hora de crear sitios internacionales.” Agrega que “esta librería básicamente es una base de datos gigantesca, optimizada para ser de rápido acceso, con los rangos de direcciones IP por regiones, países, etc.”
Feed
A su vez el módulo de sindicalización se ciñe perfectamente a los patrones propuestos por Django, permite tener todos los métodos y propiedades de los modelos, así como usar plantillas y filtros para la presentación.
Formularios
Django viene con una forma fácil de crear formularios a partir de modelos, con validación automática y completamente personalizable desde la plantilla, Adán nos explica como:
Clase para formulario automático
Un formulario es tan sencillo como:
class VideoComentarioForm(ModelForm): class Meta: model = VideoComentario fields = ('autor', 'autor_email', 'autor_url', 'content')
Plantilla para personalizar formulario
<form> <label for="author">nombre</label>{{ form.autor }} {{ form.autor.errors }} <label for="email">email</label>{{ form.autor_email }} {{ form.content.errors }} … </form>
Lo poco que no tiene Django, se soluciona
Si es que Django no incluye algunos módulos, es extremadamente sencillo crear módulos adicionales que encapsulen funcionalidad extra.
Imágenes
En Mejorando.la hay diferentes tipos de imágenes; estas imágenes distintas son generadas recortando y optimizando desde el administrador, cuando se crea el video. Nos cuenta Adán que esta tarea fue muy fácil de realizar gracias a la librería PIL.
“Esta librería está en C por lo que es muy veloz, en Python te vas a encontrar muchos módulos en C, sobre todo aquellos que requieren más procesamiento.” agrega Adán.
Ejemplo de uso del módulo PIL
import Image image = Image.open(path) image = image.resize((newWidth, newHeight), Image.ANTIALIAS) image.save(path)[ ejemplo ]
Consejos para mejorar la web con django y python
Adán nos dio algunas consideraciones para tener en cuenta al llevar el sitio a producción:
- Configurar un administrador, que recibirá alertas cuando algo salga mal.
- No olvides crear tus páginas 400 y 500 (páginas de errores).
- Profundizar en los múltiples parámetros de configuración que ofrece Django. Antes de llevar cualquier sitio Django a producción lee la guia para que veas todo lo que puede “tweakear”.
- Con una línea puedes activar el uso de memcached para cachear las páginas de Django. Es muy simple y puede hacer una gran diferencia en el rendimiento de tu aplicación cuando tienes muchas visitas.
- Hay muchas formas de llevar a producción un sitio Django. Mejorando.la utiliza una combinación de Nginx (para archivos estáticos) y mod_wsgi, que es un módulo de apache, para el código python.
- Con respecto al hosting, hostgator es una buena opción para iniciar probando Django, sin pagar mucho.
El trabajo en equipo. No todo es programación
Además de las tecnologías que mencionamos, también se necesitaron herramientas que ayudaron al trabajo en equipo.
- BaseCamp, lo más importante es mantenerse comunicado con tu equipo.
- Github, es una parte central para asegurar la fluidez del trabajo ya que acelera mucho el proceso de comunicación al llevar un registro de “quién hizo qué”. En Mejorando.la se manejan dos ramas principales, hay dos sitios montados uno en desarrollo y otro que es el produccion.
- Feedback, al desarrollar un sitio es importante lo que opinan los usuarios, para ello Twitter ha brindado una enorme cantidad de feedback muy valioso, “nunca ignoren a un usuario que les reporta un bug”.
- Diferentes dispositivos, cada uno de los que forman parte del equipo cuentan con dispositivos diferentes, aún así ayuda cualdo alguien manda un error con una captura de pantalla en X dispositivo.
- Newrelic, es una herramienta muy completa para el monitoreo del sitio.
Es importante que estés consciente de que con Django las posibilidades son muchas, y conforme vayas profundizando en el tema irás aprendiendo trucos.
Ya sabes cómo se utiliza python, django y otras tecnologías para desarrollar el sitio de Mejorando.la. El sitio es Open Source y el código está disponible en Github.
Y si quieres profundizar más en el tema recuerda que puedes revisar la guía Django y la guía Python.
Muy bueno, excelente me gusto mucho
Excelente articulo, linda escritora… que mas pedir
que servidor tiene soporte para python – django … en cual servidor esta alojado Mejorando.la ?? …
Pues yo creo que tu explicación es muy buena y además eres muy linda, ojalá vengas a México y me permitas ser tu guía turístico, saludos!!!!