fitoria's blog

Posted Mon 14 November 2011

Django Suite I: Iniciar con Django.

Esta es una parte de una serie de post semanales que estaré dedicando a distintos temas de Django. El titulo Django Suitees un pequeño juego de palabras ya que el nombre del framework fue inspirado por el gran guitarrista de jazz Django Reinhardt y suite que se define como un tipo de pieza musical compuesta por varios movimientos breves.

Para el primer movimiento empezaré con lo básico el inicio,no voy a realizar un tutorial de como iniciar en Django por que hay muchos ya en internet que son útiles pero debido a que muchas personas me preguntan cual es la mejor manera de iniciar con Django hago este post para guiarlos un poco sobre lo que las guías dan por hecho pero que nos pueden hacer perder algo de tiempo buscando por ahí.

Sinceramente no hay bala de plata para lograr cabalgar al pony sino por que el proceso de aprendizaje varía de quien en quien, lo que si puedo decir es que Django es uno de los proyectos mejor documentadosque existen, casi todo el framework menos algunas funciones internas muy poco usadas están descritas en https://docs.djangoproject.com/ en la dirección anterior puedes navegar fácilmente todos los temas.

La documentación es muy buena pero no te servirá de nada si no tienes un conocimiento básico de Python lo bueno es que existen libros como este y tutoriales completos como este otro. Cosas a tener muy en cuenta para conocer en python primero:

  1. Definición, uso y construcción de módulos en Python.
  2. Definición y uso de funciones del tipo genérica, [uso de parámetros *args y *kwargs][].
  3. Uso y construcción de expresiones regulares básicas.
  4. Programación orientada a objetos y herencia de clases.
  5. Como instalar paquetes de python desde PyPi.

Django depende bastante de estos cuatro puntos anteriores, por ejemplo sin conocer mucho de expresiones regulares no podrán construir urls.

Herramientas

Todo lo que necesitas es el interprete de python, django instalado, un navegador web y tu editor de texto favorito. Existen también algunos IDE con soporte a Django como Wingware y soporte para Python en Eclipse trabaja con lo que te sientas mas cómodo.

Para motor de base de datos puedes elegir Postgres, MySQL, SQLite3, SQL Server y Oracle igual que el punto anterior, usa tu favorito.

Modo de Trabajo

Tienes que tomar en cuenta que Django es un framework que usa el patrón MVC por lo que preferiblemente y por el bien de tu código debes de separar muy bien la lógica, presentación y datos de tu aplicación, si ves que esto se mezcla estás haciendo algo mal.

Django es modulare introduce el concepto de "aplicaciones plugables" que no son mas que módulos de Python encapsulando una parte de funcionalidad de tu aplicación web. Ejemplo práctico: Tenemos una página con un foro, un blog y una galería de fotos nuestro proyecto tendría como mínimo tres aplicaciones django separando la sección de blog, galería y foro. Este tipo de diseño hacen que existan mucho código libre de aplicaciones que simplemente conectamos con nuestro proyecto, si tiene nombre es muy probable que haya una aplicación de django para eso!

Si no me crees ve a http://djangopackages.com/ y busca las múltiples alternativas para resolver un problema que tengas. Normalmente en mis proyectos uso al menos una aplicación creada por terceros y eso nos facilita la vida tremendamente. En la práctica gracias a esto podemos hacer un sitio con registro de usuarios, confirmación de correo, manejo de avatares, perfiles de usuarios, blog, menús dinámicos en menos de media hora, sin tomar en cuenta el tiempo que nos llevaría realizar el diseño en html.

Django también provee un motor de plantillas sencillo de entender pero a la vez muy poderoso que permite separar los roles entre el frontend y backend, haciendo mas sencillo el trabajo en equipos.

Mantenerse al día

Como todo en la vida y mas en el mundo de la programación y tecnología es una necesidad mantenerse informado con lo último. Acá una pequeña lista de sitios que pueden ayudar:

Te invito a probarlo y te aseguro que te engancharás enseguida, si le dedicas algo de tiempo podrías comenzar a hacer sitios web completamente funcionales en menos de una semana.

El fin.

PD. Puedes dejar sugerencia sobre nuevos temas en los comentarios.

Categories: django, planeta, programacion, python, softwarelibre,

Comments