Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Comunidad

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.

Django: presentación, introducción y ejemplo de desarrollo

En Software Libre | publicado el Thursday 28 de January de 2010

Fuente: m.menea.me

Leer entrada completa →

New Years Python meme

En Ovnicraft | publicado el Thursday 31 de December de 2009

Here’s a short, 5 questions, 2009 Python meme. Copy-paste the questions, and blog your answers ! 1. What’s the coolest Python application, framework, or library you have discovered in 2009? OpenObject. This is the best framework, really i discovered at the 2008′s end, so i create many modules about Enterprise applications, and i did some

Leer entrada completa →

Inicio en GeoDjango

En Ovnicraft | publicado el Friday 25 de December de 2009

Estoy empezando un app GIS con geodjango, realmente es un framework increible para este tipo de aplicaciones, y para empezar escribi un pequeno ejemplo con los centros poblados de mi pais. Las herramientas que se necesitan: GeoDjango (esta incluido en el codigo de django) PostGIS (revisar las dependencias) Algo importante para resaltar es la herramienta ogrinfo ya que con [...]

Leer entrada completa →

Atajo para búsquedas en la documentacion de django

En Luis Montiel | publicado el Saturday 26 de September de 2009

Para los que constantemente se la pasan recurriendo a la documentación de django y usan firefox o chrome/chromium, esto les puede ahorrar unos cuantos segundos: - Navegamos a http://docs.djangoproject.com/en/dev/ ![Alt text](/djangoblog/media/img/weblog/django-search1.png) - Damos clic derecho en la barra de búsqueda y seleccionamos la opción: "Add a keyword for this search", ...

Leer entrada completa →

Primeros pasos con geodjango

En pyAutoservicio | publicado el Sunday 30 de August de 2009

Este es un minitutorial "expreso" para probar geodjango en debian testing con postgres 8.3, postgis y django 1.1Pues lo primero es instalar los "juguetes":$ apt-get install postgis postgresql-8.3 postgresql-plpython-8.3 $ apt-get install python2.5 python-psycopg2 python-django ipython $ apt-get install gdal-bin python-gdal  Ahora debemos configurar un poco postgres asi:Debemos volvernos root y luego el usuario postgres$ su $ su postrgres$ psql template1Este úlrimo comando nos conecta a postgres como el usuario postgres (el root del servidor de bases de datos), luego configuramos una plantilla para postigs (esto lo hacemos una sola vez)template1=# ALTER USER postgres WITH PASSWORD 'postgres';ALTER ROLETemplate1=#  \qLuego:$ cd /tmp$ wget http://geodjango.org/docs/create_template_postgis-debian.sh$ bash create_template_postgis-debian.shEsto nos crea la plantilla template_postgis, ahora volvemos a postgres: $ createdb -T template_postgis geodjangoSalimos de postgres y del usuario root.Ahora creamos un projecto y la app:$ djano-admin startproject geodjango$ cd geodjango$ python manage.py startapp world Luego editamos el settings de nuestro proyecto con el editor de nuestra preferencia (sugerencia rapida gedit)$ gedit settings.py &Dejamos las siguientes variables así DATABASE_ENGINE = 'postgresql_psycopg2' DATABASE_NAME = 'geodjango'             # Or path to database file if using sqlite3.DATABASE_USER = 'postgres'             # Not used with sqlite3.DATABASE_PASSWORD = 'postgres'         # Not used with sqlite3.DATABASE_HOST = 'localhost'LANGUAGE_CODE = 'es'INSTALLED_APPS = (    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.sites',    'django.contrib.admin', 'django.contrib.gis', 'geodjango.world',)luego de guardar estos cambios:$ mkdir world/data$ cd world/data$ wget http://thematicmapping.org/downloads/TM_WORLD_BORDERS-0.3.zip$ unzip TM_WORLD_BORDERS-0.3.zip$ cd ../.. Luego editamos otro archivo: $ gedit world/models.py &  from django.contrib.gis.db import modelsclass WorldBorders(models.Model): # Regular Django fields corresponding to the attributes in the # world borders shapefile. name = models.CharField(max_length=50) area = models.IntegerField() pop2005 = models.IntegerField('Population 2005') fips = models.CharField('FIPS Code', max_length=2) iso2 = models.CharField('2 Digit ISO', max_length=2) iso3 = models.CharField('3 Digit ISO', max_length=3) un = models.IntegerField('United Nations Code') region = models.IntegerField('Region Code') subregion = models.IntegerField('Sub-Region Code') lon = models.FloatField() lat = models.FloatField() # GeoDjango-specific: a geometry field (MultiPolygonField), and # overriding the default manager with a GeoManager instance. mpoly = models.MultiPolygonField() objects = models.GeoManager() # So the model is pluralized correctly in the admin. class Meta: verbose_name_plural = "World Borders" # Returns the string representation of the model. def __unicode__(self): return self.name Luego vemos que todo vaya bien: $ ./manage.py sqlall world Esto nos mostrara el sql de postgres para crear nuestro modelo: BEGIN;CREATE TABLE "world_worldborders" ( "id" serial NOT NULL PRIMARY KEY, "name" varchar(50) NOT NULL, "area" integer NOT NULL, "pop2005" integer NOT NULL, "fips" varchar(2) NOT NULL, "iso2" varchar(2) NOT NULL, "iso3" varchar(3) NOT NULL, "un" integer NOT NULL, "region" integer NOT NULL, "subregion" integer NOT NULL, "lon" double precision NOT NULL, "lat" double precision NOT NULL);SELECT AddGeometryColumn('world_worldborders', 'mpoly', 4326, 'MULTIPOLYGON', 2);ALTER TABLE "world_worldborders" ALTER "mpoly" SET NOT NULL;CREATE INDEX "world_worldborders_mpoly_id" ON "world_worldborders" USING GIST ( "mpoly" GIST_GEOMETRY_OPS );COMMIT;  Luego ejecutamos este sql:$ ./manage.py syncdb Lo que nos preguntara el usuario admin, su correo y la clave de acceso:Creating table auth_permissionCreating table auth_groupCreating table auth_userCreating table auth_messageCreating table django_content_typeCreating table django_sessionCreating table django_siteCreating table django_admin_logCreating table world_worldbordersYou just installed Django's auth system, which means you don't have any superusers defined.Would you like to create one now? (yes/no): yesUsername (Leave blank to use 'diegueus9'): <- Toma el usuario con el que estes haciendo estoE-mail address: <- Escribe tu correoPassword:Password (again):Superuser created successfully.Installing custom SQL for world.WorldBorders modelInstalling index for auth.Permission modelInstalling index for auth.Message modelInstalling index for admin.LogEntry model Luego creamos un scrip que cargará los datos de los archivos que descargamos:$ gedit world/load.pyimport osfrom django.contrib.gis.utils import LayerMappingfrom models import WorldBordersworld_mapping = { 'fips' : 'FIPS', 'iso2' : 'ISO2', 'iso3' : 'ISO3', 'un' : 'UN', 'name' : 'NAME', 'area' : 'AREA', 'pop2005' : 'POP2005', 'region' : 'REGION', 'subregion' : 'SUBREGION', 'lon' : 'LON', 'lat' : 'LAT', 'mpoly' : 'MULTIPOLYGON',}world_shp = os.path.abspath(os.path.join(os.path.dirname(__file__), 'data/TM_WORLD_BORDERS-0.3.shp'))def run(verbose=True): lm = LayerMapping(WorldBorders, world_shp, world_mapping, transform=False, encoding='iso-8859-1') lm.save(strict=True, verbose=verbose) Ahora lo que vamos a hacer es subir la info de las fronteras de los paises del mundo a nuestro modelo: $ ./manage shell Python 2.5.4 (r254:67916, Feb 18 2009, 03:00:47)Type "copyright", "credits" or "license" for more information.IPython 0.9.1 -- An enhanced Interactive Python.?         -> Introduction and overview of IPython's features.%quickref -> Quick reference.help      -> Python's own help system.object?   -> Details about 'object'. ?object also works, ?? prints more.In [1]: from world import loadIn [2]: load.run().........Saved: JerseySaved: South Georgia South Sandwich IslandsSaved: TaiwanIn [3]: exit()Do you really want to exit ([y]/n)? yAhora vamos a activar y usar nuestra interfaz automagica administrativa que nos da django:$ gedit world/admin.py &from django.contrib.gis import adminfrom models import WorldBordersclass WorldBordersAdmin(admin.GeoModelAdmin): list_display = ['name', 'area', 'pop2005', 'lon', 'lat'] search_fields = ['name']admin.site.register(WorldBorders, WorldBordersAdmin) Y luego editamos las urls:$ gedit urls.py &from django.conf.urls.defaults import *from django.contrib import adminadmin.autodiscover()urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)),)Ahora ponemos a correr nuestro servidor de desarrollo:$ ./manage runserver 9090Validating models...0 errors foundDjango version 1.1, using settings 'geodjango.settings'Development server is running at http://127.0.0.1:9090/Quit the server with CONTROL-C.Y en el navegador vamos a  http://127.0.0.1:9090/ veremos un error 404 como este:Luego vamos a http://127.0.0.1:9090/admin y veremos esta interfaz:alli ingresamos el usuario y la clave que configuramos cuando corrimos el comando syncdb y veremos esto:Luego hacemos clic en World Borders y veremos algo así:Allí podemos ordenar la lista por nombre  del pais (name), area (area), poblacion del 2005 (population 2005) o longitud y latitud del mismo. Ahora cerca al boton buscar ingresamos colombia y le damos buscar luego clic en colombia y veremos info y este mapa:Y eso es todo, así tendremos nuestro "Hola mundo" con geodjango, django, postgres, postgis, etc...

Leer entrada completa →

Las bases de paginas web en django

En Luis Montiel | publicado el Monday 20 de July de 2009

Vamos a crear una pagina Web dinamica en django, una que despliegue la hora fecha y hora actual, este es un buen ejemplo de una "pagina dinamica", ya que sus contenidos no son estaticos, al contrario, son el resultado de algun calculo en el servidor(en este caso es el simple ...

Leer entrada completa →

Definiendo nuestra aplicación: Especificaciones, relaciones y modelos

En Django en Mac | publicado el Wednesday 8 de July de 2009

Cómo comente en el post anterior, intentaremos desarrollar una aplicación web algo compleja, por lo tanto, creo que lo mejor es, que desde el principio, definamos claramente lo que queremos. Por lo tanto, detallaremos las especificaciones que necesitamos para desarrollar Classifieds: Los usuarios crean los anuncios y estos pueden estar o no registrados (la diferencia estriba, [...]

Leer entrada completa →

Comenzamos con el proyecto: Classifieds

En Django en Mac | publicado el Tuesday 7 de July de 2009

Ahora que ya tenemos todo instalado y configurado, nos ponemos manos a la obra con nuestro proyecto. La idea es que este, sea un proyecto totalmente funcional, es decir, que podamos luego poner en producción, de hecho será la nueva versión de un sitio de anuncios clasificados existente. Para seguir un orden y no perdernos, [...]

Leer entrada completa →

Instalando Django + PostgreSQL en Mac OS X Leopard 10.5.7

En Django en Mac | publicado el Tuesday 7 de July de 2009

1. Instalar Python Existen varias implementaciones distintas de Python: CPython, Jython, IronPython, PyPy, etc… CPython es la más utilizada, la más rápida y la más madura. Cuando la gente habla de Python normalmente se refiere a esta implementación. En este caso tanto el intérprete como los módulos están escritos en C. Jython es la implementación en Java de [...]

Leer entrada completa →

Django: El Framework

En Django en Mac | publicado el Saturday 4 de July de 2009

Despues de probar por un tiempo CakePHP, dado que PHP era el lenguaje que siempre habia utilizado, y despues de leer mil y un articulos al respecto, he decidido probar Django. Supongo que será una tarea dura, ya que en principio no tengo ni idea de Python, pero poco a poco les iré contando mis [...]

Leer entrada completa →