Aplicación Django para subida de ficheros

Buscando cosas para un proyecto he encontrado esta app/módulo para la carga de ficheros en una aplicación web usando las últimas técnicas de manera que la carga sea sencilla y visual.

http://blueimp.github.io/jQuery-File-Upload/index.html

Nos permite una carga archivos vía drag&drop, pre-visualizarlos, validar su carga y nos muestra una barra de progreso mientras sube. Y todo con un aspecto bootstrap muy agradable (o si lo queremos lquery ui).

El código está en github como no:

https://github.com/blueimp/jQuery-File-Upload

Crear versión mobile de una web sobre DJANGO

Buscando como hacer una aplicación django apta para escritorio y móviles encontré bastante info, como por ejemplo:

Pero al final la que más me ha convencido la encontré a través de stackoverflow (como no!):

http://stackoverflow.com/questions/2321172/detect-mobile-browser-not-just-iphone-in-python-view

Se basa en el uso de un middleware, el minidetector. En su web hay una brevisima documentación, que además no es correcta 🙁 pero tampoco es tan difícil echarlo a andar:

  • Nos lo bajamos al directorio de nuestro proyecto:


svn co http://minidetector.googlecode.com/svn/trunk/minidetector

  • Lo añadimos a la lista de middlewares en el settyngs..py


'minidetector.Middleware'

  • Y ya podemos jugar en las vistas con el parámetro mobile del objecto request, por ejemplo cambiando los templates


def my_mobile_view(request):
if request.mobile:
#do something with mobile
}}}

Ya solo nos falta usar nuetsra framework web mobile preferido (como http://jquerymobile.com)

Hacer busquedas de google desde python

Tengo un proyectillo personal sobre calcular el posicionamiento de una web en google (dondesalgoengoogle.es, pero aune stá verde solo para uso interno). Como siempre en python hay ya muchas cosas hechas y esta no es un caso distinto. Lo estoy haciendo el django (por eso tanto post sobre él) y usando la librería de catonmat:

http://www.catonmat.net/blog/python-library-for-google-search/

Es bastante sencilla de utilizar:

from xgoogle.search import GoogleSearch, SearchError
try:
  gs = GoogleSearch("quick and dirty")
  gs.results_per_page = 50
  results = gs.get_results()
  for res in results:
    print res.title.encode("utf8")
    print res.desc.encode("utf8")
    print res.url.encode("utf8")
    print
except SearchError, e:
  print "Search failed: %s" % e

 

 

 

Usar cron de manera gráfica en apps django

Uno de los problemas típicos en aplicaciones web es el ejecuta trabajos de manera cíclica y programada. En django hay una interesante aplicación que podemos añadir a nuestro proyecto para gestionar tareas que queremos que se ejecuten a una cierta hora unos días concretos. Se trata de django-cronograph y en si documentación encontramos más detalles http://readthedocs.org/docs/django-chronograph/en/latest/overview.html

Realmente es sencilla de usar:

  • añadidos la app a nuestro proyecto (copiamos el directorio, la añadimos en settings.py, hacemos un syncdb etc)
  • Si queremos ejecutar algún acción de nuestros modelos o similar creamos un nuevo comando de administración de django siguiendo estas instrucciones:https://docs.djangoproject.com/en/dev/howto/custom-management-commands/
  • Añadimos una entrada en cron que lance el comando de cronograph
  • Desde la parte admin podemos empezar a definir nuestras tareas periodicas.

Super-chuleta de python

chuletaVía alfredo me entero de este post http://ubuntulife.wordpress.com/2011/08/27/mega-cheatsheet-de-python-la-chuleta-de-python-mas-completa-que-he-visto-hasta-la-fecha/
y esta magnifica super-chuleta de python (solo le faltan unas patatas de guarnición 🙂 ) La tenemos en PDF o en ODT (para facilitar su digestión cocinándola a nuestro gusto).

 

Yo ya la tengo a buen recaudo, para cuando tengo “hambre” de python 🙂

Servicio de nube gratuito para php/python/perl/java/…

La nube está muy de moda. Ya os hablé de gondor. Hoy toca un servicio de nube con buena pinta: dotCloud

https://www.dotcloud.com/

Soporta un montón de servicios y otros están en camino:

http://docs.dotcloud.com/services/roadmap/

Y de BBDD lo mismo, tenemos las clásicas mysql, postgresql, mongodb, etc

Hay un plan gratuito donde solo podemos tener 2 servicios. Luego ya empezamos con los planes de pago. Hay que tener en cuenta que un servicio es la base de datos y otro la aplicación.

https://www.dotcloud.com/pricing/

Los precios empiezan desde 99$/mes, que no es poco! Pero también dicen que hay descuentos y ofertas para proyectos FLOSS y educativos.

Implementar un API en tu aplicación django con tastypie

Leyendo sobre la djangocon europe me encuentro este fantástico módulo para generar el API de nuestra aplicación django:

tastypie

Con ella podremos crear en 5 minutos y con pocas lineas el API de nuestra app y lo mejor es que la documentación es “muy jugosa”.

Un ejemplo: http://dondeescalar.es/api/v1/escuela/?format=json

 

 

hosting cloud para django: gondor

Vía genbetadev (que cada día me gusta más), encuentro esta solución para subir a la nube ( como se nos llena la boca con  estas palabras buzz 🙂 nuestros proyectos de django. Se trata de Gondor.io, de momento solo en beta privada. Puede ser una alternativa al appengine de google.

 

Una opción si no tenemos un hosting o no queremos pelearnos con todo lo que implica poner “up” un app django.