Esta página, actualizada diariamente, agrega las entradas de blogs que escriben sobre Django. También existe un feed con las últimas 30 entradas de la comunidad. Si escribes sobre Django contacta con nosotros para añadir tu feed. Listado de blogs. También hay una cuenta de django-es en Twitter, otra en identi.ca y un grupo en Facebook desde los que seguir las novedades de la comunidad.
En DynamicWare | publicado el Sábado 4 de Febrero de 2012
La ejecucion inicial de los tests toma aproximadamente 15 segundos:4.54user 0.64system 0:15.25elapsed 34%CPU (0avgtext+0avgdata 123600maxresident)k4.70user 0.54system 0:14.70elapsed 35%CPU (0avgtext+0avgdata 122992maxresident)k4.46user 0.65system 0:14.85elapsed 34%CPU (0avgtext+0avgdata 122912maxresident)kLuego de ajustar los siguientes parametros:- fsync = off- synchronous_commit = off- wal_sync_method = fsyncla ejecución toma aproximadamente 8.5 segundos:4.22user 0.56system 0:08.62elapsed 55%CPU (0avgtext+0avgdata 123024maxresident)k4.32user 0.58system 0:08.97elapsed 54%CPU (0avgtext+0avgdata 123008maxresident)k4.29user 0.50system 0:08.74elapsed 54%CPU (0avgtext+0avgdata 123040maxresident)kEl tiempo se redujo casi a la mitad! Aunque esta configuración no es para nada recomendable para un equipo de producción, creo que vale la pena para ejecutar tests.
En DynamicWare | publicado el Sábado 4 de Febrero de 2012
Otra manera de optimizar la ejecución de tests de Django, pero SIN modificar la instalación de PostgreSql del sistema operativo es crear una nueva instancia, corriendo totalmente en ram.Para crear una nueva instancia usamos initdb:$ /usr/lib/postgresql/9.1/bin/initdb \ --pgdata=/dev/shm/pgtesting \ -U horacioY para lanzar la instancia en segundo plano:$ /usr/lib/postgresql/9.1/bin/postgres \ -F -i -p 5444 -S $((1024*64)) \ -D /dev/shm/pgtesting \ --unix_socket_directory=/dev/shm/pgtesting \ -r /dev/shm/pgtesting/postgresql.log &Luego creamos el usuario y BD para la aplicación Django:psql -h 127.0.0.1 \ -c "create user vindler with password 'x' superuser" postgrespsql -h 127.0.0.1 \ -c "create database vindler owner vindler" postgresMejora en tiempos de ejecución de test: 28%La ejecución de los tests con PostgreSql en disco, con las optimizaciones de mi artículo anterior tardan alrededor de 7 segundos:Ran 18 tests in 7.071s5.44user 0.58system 0:10.40elapsed 57%CPU (0avgtext+0avgdata 122880maxresident)k0inputs+1184outputs (0major+16964minor)pagefaults 0swapsRan 18 tests in 6.843s5.28user 0.65system 0:10.27elapsed 57%CPU (0avgtext+0avgdata 122976maxresident)k0inputs+1176outputs (0major+16956minor)pagefaults 0swapsRan 18 tests in 7.032s5.42user 0.64system 0:10.42elapsed 58%CPU (0avgtext+0avgdata 124304maxresident)k0inputs+1168outputs (0major+17122minor)pagefaults 0swapsLos mismos tests ejecutandose en la nueva instancia de PostgreSql totalmente en ram, tardan alrededor de 5 segundos:Ran 18 tests in 5.220s4.41user 0.65system 0:08.38elapsed 60%CPU (0avgtext+0avgdata 117904maxresident)k8inputs+1176outputs (0major+16524minor)pagefaults 0swapsRan 18 tests in 5.047s4.32user 0.53system 0:08.04elapsed 60%CPU (0avgtext+0avgdata 117888maxresident)k0inputs+1168outputs (0major+16504minor)pagefaults 0swapsRan 18 tests in 4.665s3.95user 0.64system 0:07.79elapsed 58%CPU (0avgtext+0avgdata 117856maxresident)k0inputs+1176outputs (0major+16502minor)pagefaults 0swapsAl ejecutar los tests de stress: 33%Con PostgreSql en disco:Ran 1 test in 24.601s15.21user 2.72system 0:27.98elapsed 64%CPU (0avgtext+0avgdata 130944maxresident)k0inputs+9616outputs (0major+18298minor)pagefaults 0swapsRan 1 test in 24.458s15.16user 2.51system 0:27.57elapsed 64%CPU (0avgtext+0avgdata 131488maxresident)k472inputs+9608outputs (0major+18457minor)pagefaults 0swapsRan 1 test in 24.552s15.23user 2.63system 0:27.95elapsed 63%CPU (0avgtext+0avgdata 131088maxresident)k232inputs+9616outputs (0major+18310minor)pagefaults 0swapsCon PostgreSql en ram:Ran 1 test in 16.082s11.30user 2.46system 0:19.22elapsed 71%CPU (0avgtext+0avgdata 126080maxresident)k0inputs+9616outputs (0major+17675minor)pagefaults 0swapsRan 1 test in 15.736s11.25user 2.20system 0:18.82elapsed 71%CPU (0avgtext+0avgdata 126192maxresident)k0inputs+9608outputs (0major+17684minor)pagefaults 0swapsRan 1 test in 15.408s10.78user 2.27system 0:18.44elapsed 70%CPU (0avgtext+0avgdata 126384maxresident)k0inputs+9608outputs (0major+17693minor)pagefaults 0swaps
En DynamicWare | publicado el Miércoles 25 de Enero de 2012
Hay algunos problemas con la version 0.4 de django_openid_auth (ej: no se puede instalar via pip). El proyecto es open source, por lo tanto es muy facil subirlo a GitHub y compartir estos arreglos :-)Básicamente bajé el proyecto original (revisión 88) y lo subi a GitHub. Para instalarlo usando PIP hay que ejecutar:./pip install -e git+http://github.com/hgdeoro/hgdeoro_fork_of_django_openid_auth#egg=django_openid_authActualizaciónMucho mejor, instalamos usando PIP, pero un commit en particular (ec68dfc046d1a75b50080ea98c56eda71956ed7a):pip install -e git+http://github.com/hgdeoro/hgdeoro_fork_of_django_openid_auth@ec68dfc046d1a75b50080ea98c56eda71956ed7a#egg=django_openid_authO también un tag en particular (bzr_revno_88):pip install -e git+http://github.com/hgdeoro/hgdeoro_fork_of_django_openid_auth@bzr_revno_88#egg=django_openid_auth
En Yaco | publicado el Lunes 9 de Enero de 2012
La tarea de administrar un sitio web es una tarea de lo más complicada, influyendo en gran medida el desconocimiento de la tecnología usada y las carencias del administrador, el cual muchas veces no es técnico. Django posee una administración muy potente, pero para un usuario no-programador a veces puede seguir siendo [...]
En Estribancus | publicado el Lunes 5 de Diciembre de 2011
Ocurre muchas veces que necesitamos una shell en django para realizar pruebas o tareas de mantenimiento. Conseguirla es muy sencillo ya que settings.py se cargará desde el primer momento en que importemos un modelo o cualquier módulo de django. Lo único que tenemos que hacer es exportar la variable DJANGO_SETTINGS_MODULE con el valor del fichero de settings que queremos utilizar. Yo uso este script (suponiendo que nuestros settings están en settings.py):shell.shexport DJANGO_SETTINGS_MODULE="settings"pythondesde aquí ya podemos operar con los modelos:from gesion.models import Clientec=Cliente(clave='444', descripcion='Pepe Perez')c.save()Si queremos acceder desde un script independiente en python podemos usar setup_environ de esta forma:mantenimiento.pyfrom django.core.management import setup_environtry: import settingsexcept ImportError: import sys sys.stderr.write("No encuentro el fichero de settings") sys.exit(1)setup_environ(settings)....Espero que os sirva.
En Yaco | publicado el Jueves 1 de Diciembre de 2011
Desde su comienzo Yaco ha estado fuertemente ligada al Software Libre, siempre ha creído en el concepto de comunidad, por ello todo el equipo intenta usar, mejorar y contribuir a esta en todo lo posible. Si desde el primer día Yaco ha tenido debilidad por el Software Libre, siempre ha tenido predilección por el [...]
En Bosco Curtu | publicado el Miércoles 2 de Noviembre de 2011
Última hora!!! Tenemos un nuevo Amigo Invisible Online, la mejor forma de celebrar un amigo invisible por email. Bueno, no es última hora, pero como todavía no lo había blogeado, pues alguno no lo sabrá. El nuevo amigo invisible, que por fuera se parece mucho al antiguo, tiene las siguientes funcionalidades: Exclusiones múltiples. Era una funcionalidad muy [...]
En Yaco | publicado el Martes 25 de Octubre de 2011
En paralelo a la “Libre Software World Conference ’2011” (LSWC’11) que tendrá lugar en Zaragoza los días 9 y 10 de noviembre, se desarrollarán una serie de charlas dedicadas a Python para promocionar este lenguaje entre las empresas de Software Libre que acudan al evento, y entre las administraciones públicas en [...]
En DynamicWare | publicado el Miércoles 19 de Octubre de 2011
Podemos resetear South desinstalándolo y volviéndolo a instalar. Atención: esto hará que se pierdan todas las migraciones existentes, y los datos de las BD de las aplicaciones que se quieran resetear. Los pasos a seguir son:1) eliminar de la BD las tablas de South: south_migrationhistory.2) eliminar de la BD las tablas de las aplicaciones administradas por south.3) eliminar el paquete migrations de las aplicaciones que usen South.4) ejecutar syncdb.5) volver a marcar las aplicaciones que deben ser administradas usando South, ejecutando: "manage.py convert_to_south APP"
En Estribancus | publicado el Viernes 7 de Octubre de 2011
Seaclass Base(object): def __init__(self): print "Base created"class ChildA(Base): def __init__(self): Base.__init__(self)class ChildB(Base): def __init__(self): super(ChildB, self).__init__()¿Qué diferencia hay entre la construcción de A y de B?. Pues ninguna, lo que ocurre es que super nos permite mayor flexibilidad para gestionar la jerarquía ya que no tenemos que referirnos a una clase en particular.Usar super es también la única forma de hacer herencia múltiple aunque yo no la uso por ser fuente de errores.En python 3, la sintaxis se simplifica de super(ChildB,self).__init__() a super().__init().Fuentes:Understanding Python super() and init methodshttp://stackoverflow.com/questions/576169/understanding-python-super-and-init-methodsHow to use 'super' in pythonhttp://stackoverflow.com/questions/222877/how-to-use-super-in-python