<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Django en Mac &#187; Django</title>
	<atom:link href="http://django.canariblogs.com/category/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://django.canariblogs.com</link>
	<description>Django para principiantes como yo</description>
	<lastBuildDate>Wed, 05 Aug 2009 19:03:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Definiendo nuestra aplicación: Especificaciones, relaciones y modelos</title>
		<link>http://django.canariblogs.com/2009/07/08/definiendo-nuestra-aplicacion-especificaciones-relaciones-y-modelos/</link>
		<comments>http://django.canariblogs.com/2009/07/08/definiendo-nuestra-aplicacion-especificaciones-relaciones-y-modelos/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 00:27:29 +0000</pubDate>
		<dc:creator>Canario</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Proyecto: Classifieds]]></category>
		<category><![CDATA[classifieds]]></category>
		<category><![CDATA[modelos]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[MVT]]></category>
		<category><![CDATA[proyecto]]></category>
		<category><![CDATA[relaciones]]></category>

		<guid isPermaLink="false">http://django.canariblogs.com/?p=82</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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:</p>
<ul>
<li>Los usuarios crean los anuncios y estos pueden estar o no registrados (la diferencia estriba, en que los usuarios registrados, dispondran de un panel de administración de sus anuncios).</li>
<li>Los usuarios podrán publicar anuncios de particulares y de empresas.</li>
<li>Los anuncios estarán clasificados por subcategorias, categorias y tipos de anuncio (se compra, se vende, se alquila, se traspasa, etc&#8230;)</li>
<li>Los anuncios estarán ubicados por paises, estados/comunidades autónomas y ciudades/provincias.</li>
<li>Los anuncios son siempre validados por un editor/administrador de la aplicación web.</li>
</ul>
<p>Estas son a groso modo las principales especificaciones de nuestra aplicación, aunque no descarto que se vayan incrementando a medida que vayamos avanzando en su desarrollo (procuraré actualizar esta entrada si esto sucede).</p>
<p>Ahora antes de definir las relaciones existentes entre los distintos tipos de datos y sus modelos, veamos el siguiente diagrama donde se muestra de forma gráfica estas relaciones:</p>
<p><img class="aligncenter size-full wp-image-89" src="http://django.canariblogs.com/files/classifieds.jpg" alt="classifieds" width="266" height="315" /></p>
<p>Las relaciones entre los distintos modelos de datos son las siguientes:</p>
<ol>
<li>Un usuario solo puede ser un tipo de usuario (particular o empresa) y de un tipo de usuario existen muchos usuarios.</li>
<li>Un tipo de usuario, puede tener uno o muchos anuncios, pero un anuncio sólo puede pertener a un tipo de usuario.</li>
<li>Un anuncio pertenece a un tipo de anuncio (Se compra, Se vende, Se alquila, etc&#8230;) y un tipo de anuncio puede tener uno o muchos anuncios.</li>
<li>Un anuncio pertenece a una ciudad o provincia y una ciudad o provincia puede tener muchos anuncios.</li>
<li>Una ciudad o provincia pertenece a un estado o comunidad autónoma, pero un estado o comunidad autónoma puede tener una o muchas ciudades/provincias.</li>
<li>Un estado o comunidad autónoma pertenece a un país, y un país puede tener una o muchos estados/ccaa.</li>
<li>Un anuncio pertenece a una subcategoría y una subcategoría puede tener muchos anuncios.</li>
<li>Una subcategoria pertenece a una categoría y una categoría puede tener muchas subcategorías.</li>
</ol>
<p style="padding-left: 30px"><strong>ACTUALIZACIÓN: 05/08/2009</strong></p>
<p style="padding-left: 30px"><em>Añadimos un modelo más que recogerá la información adicional de los anuncios, como imagenes, videos y/o mapas. La relación con anuncio es también de 1:n. Es decir, un anuncio puede tener mucha información adicional y mucha información adicional pertenece a un solo anuncio.</em></p>
<p>Como vemos todas las relaciones son uno a muchos (1:n).</p>
<p>Ahora estamos en condiciones de crear nuestra aplicación en el proyecto Classifieds.</p>
<p>Para crear una aplicación nueva dentro del proyecto ejecutamos</p>
<pre>python manage.py startapp advertisements</pre>
<p>Este comando crea el directorio <strong>advertisements</strong> y los ficheros:</p>
<p><img class="aligncenter size-full wp-image-85" src="http://django.canariblogs.com/files/imagen-21.png" alt="imagen-21" width="158" height="220" /></p>
<ul>
<li><strong>__init__.py</strong>: Define nuestro directorio como un módulo Python válido.</li>
<li><strong>models.py</strong>: Aquí se definen los modelos u objetos que serán mapeados a una base de datos relacional (en nuestro caso PostgreSQL).</li>
<li><strong>views.py</strong>: Define las funciones que van a responder a las urls entrantes.</li>
</ul>
<p>Creo que en este momento es interesante, saber distinguir proyecto de aplicación, porque cómo bien se indica en el <a href="http://the-geek.org/django-book/chapter5/">Libro de Django</a> es algo que hace confundir a los principiantes como yo. Copio literalmente:</p>
<blockquote>
<ul>
<li>Un proyecto es una instancia de un cierto conjunto de aplicaciones de Django, más las configuraciones de esas aplicaciones. Técnicamente, el único requerimiento de un proyecto es que este suministre un archivo de configuración, el cual define la información hacia la conexión a la base de datos, la lista de las aplicaciones instaladas, la variable TEMPLATE_DIRS, y así sucesivamente.</li>
</ul>
<ul>
<li>Una aplicación es un conjunto portable de una funcionalidad de Django, típicamente incluye modelos y vistas, que conviven en un solo paquete de Python. Por ejemplo, Django incluye un número de aplicaciones, tales como un sistema de comentarios y una interfaz de administración automática. Una cosa clave para notar sobre estas aplicaciones es que son portables y reusables en múltiples proyectos.</li>
</ul>
</blockquote>
<p>En la siguiente entrada, ya comenzaremos a escribir algo de código para dar forma a nuestros modelos de datos (models.py) en Python.</p>
]]></content:encoded>
			<wfw:commentRss>http://django.canariblogs.com/2009/07/08/definiendo-nuestra-aplicacion-especificaciones-relaciones-y-modelos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comenzamos con el proyecto: Classifieds</title>
		<link>http://django.canariblogs.com/2009/07/07/comenzamos-con-el-proyecto-classifieds/</link>
		<comments>http://django.canariblogs.com/2009/07/07/comenzamos-con-el-proyecto-classifieds/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 12:23:21 +0000</pubDate>
		<dc:creator>Canario</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Proyecto: Classifieds]]></category>
		<category><![CDATA[classifieds]]></category>
		<category><![CDATA[proyecto]]></category>

		<guid isPermaLink="false">http://django.canariblogs.com/?p=67</guid>
		<description><![CDATA[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, [...]]]></description>
			<content:encoded><![CDATA[<p>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, tomaremos como referencia guía el <a href="http://django.canariblogs.com/files/django-book-es-1.0.zip">Libro de Django 1.0</a>.</p>
<p>Lo primero que tenemos que hacer es crear nuestro proyecto, lo situamos fuera del root del servidor web, por dos motivos:</p>
<ol>
<li>Porque no es necesario, ya que Django dispone de su propio servidor de desarrollo</li>
<li>Porque, si lo situamos en el servidor de documentos web, corremos el riesgo de que nuestro código esté accesible mediante web.</li>
</ol>
<p>Por lo tanto, abrimos una sesión en Terminal y no situamos por ejemplo en nuestra carpeta y creamos nuestro proyecto con django-admin.py:</p>
<pre>cd $home
django-admin.py startproject classifieds</pre>
<p>Según el Django Book:</p>
<blockquote><p>Un proyecto es una colección de configuraciones para una instancia de Django, incluyendo configuración de base de datos, opciones específicas de Django y configuraciones específicas de aplicaciones.</p></blockquote>
<p>Ahora vamos a ver cual ha sido el resultado de startproject:</p>
<p><img class="size-full wp-image-71 aligncenter" src="http://django.canariblogs.com/files/imagen-12.png" alt="imagen-12" width="140" height="101" /></p>
<p>Como vemos se han creado cuatro ficheros:</p>
<ul>
<li><strong>__init__.py</strong>. Fichero vacio que le indica a Python que este directorio debe ser considerado como un paquete</li>
<li><strong>manage.py</strong>. Herramienta de linea de comandos para gestionar el proyecto Classifieds.</li>
<li><strong>settings.py</strong>. Fichero donde se recogen las configuraciones del proyecto Classifieds.</li>
<li><strong>urls.py</strong>. Fichero donde se declaran las URLs de las aplicaciones del proyecto Classifieds.</li>
</ul>
<p>Ahora entramos en el directorio classifieds (si no estamos) y vamos a lanzar el servidor de desarrollo de Django:</p>
<pre>python manage.py runserver</pre>
<p>Comprobamos que funciona correctamente&#8230; ya hemos puesto la primera piedra de nuestro proyecto <img src='http://django.canariblogs.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://django.canariblogs.com/2009/07/07/comenzamos-con-el-proyecto-classifieds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando Django + PostgreSQL en Mac OS X Leopard 10.5.7</title>
		<link>http://django.canariblogs.com/2009/07/07/instalando-django-postgresql-en-mac-os-x-leopard-1057/</link>
		<comments>http://django.canariblogs.com/2009/07/07/instalando-django-postgresql-en-mac-os-x-leopard-1057/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 08:44:46 +0000</pubDate>
		<dc:creator>Canario</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[phppgadmin]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://django.canariblogs.com/?p=8</guid>
		<description><![CDATA[1. Instalar Python Existen varias implementaciones distintas de Python: CPython, Jython, IronPython, PyPy, etc&#8230; 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 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1. Instalar Python</strong></p>
<p>Existen varias implementaciones distintas de <a href="http://www.python.org/">Python</a>: <a href="http://www.python.org/download/">CPython</a>, <a href="http://www.jython.org/">Jython</a>, <a href="http://ironpython.codeplex.com/">IronPython</a>, <a href="http://codespeak.net/pypy/dist/pypy/doc/index.html">PyPy</a>, etc&#8230;</p>
<p><a href="http://www.python.org/download/">CPython</a> 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.</p>
<p>En este caso tanto el intérprete como los módulos están escritos en C. <a href="http://www.jython.org/">Jython</a> es la implementación en Java de Python, mientras que <a href="http://ironpython.codeplex.com/">IronPython</a> es su contrapartida en C# (.NET). Su interés estriba en que utilizando estas implementaciones se pueden utilizar todas las librerías disponibles para los programadores de Java y .NET.</p>
<p><a href="http://codespeak.net/pypy/dist/pypy/doc/index.html">PyPy</a>, por último, como habréis adivinado por el nombre, se trata de una implementación en <a href="http://www.python.org/">Python</a> de <a href="http://www.python.org/">Python</a>.</p>
<p><a href="http://www.python.org/download/">CPython</a> está instalado por defecto en la mayor parte de las distribuciones Linux y en las últimas versiones de Mac OS (entre la que se encuentra Leopard). Para comprobar si está instalado abre una terminal y escribe python. Si está instalado se iniciará la consola interactiva de Python y obtendremos parecido a lo siguiente:<br />
<img class="size-full wp-image-29 aligncenter" src="http://django.canariblogs.com/files/imagen-1.png" alt="imagen-1" width="525" height="209" /></p>
<p><strong>2. Instalar Django</strong></p>
<p>Abrimos una sesión de terminal, creamos un directorio temporal donde alojaremos los ficheros de instalación de Django y entramos en el mismo.</p>
<pre>mkdir django_install &amp;&amp; cd django_install</pre>
<p>Obtenemos la última versión estable de Django:</p>
<pre>wget http://www.djangoproject.com/download/1.0.2/tarball/</pre>
<p>Debemos tener en cuenta que wget no viene instalado por defecto en OS X, si quieres instalarlo <a href="http://www.k40s.org/2008/02/07/instalar-wget-en-mac-os-x/comment-page-1/">aqui</a> explican como hacerlo, si no deseas instalarlo, puedes bajar directamente el fichero de la <a href="http://www.djangoproject.com/download/">pagina oficial</a>.</p>
<p>Descomprimimos el fichero en el directorio antes creado y entramos en él:</p>
<pre>tar zxvf Django-1.0.2-final.tar.gz &amp;&amp; cd Django-1.0.2-final</pre>
<p>Y lanzamos el instalador de Django:</p>
<pre>sudo python setup.py install</pre>
<p>Esto instalará Django en el directorio site-packages de Python.</p>
<p>Para comprobar que ha sido instalado correctamente, abrimos la consola interactiva de Python y escribimos:</p>
<pre>&gt;&gt;&gt; import django
&gt;&gt;&gt; django.VERSION</pre>
<p style="text-align: left">Y debemos obtener algo como esto:<br />
<img class="size-full wp-image-21 aligncenter" src="http://django.canariblogs.com/files/imagen-2.png" alt="imagen-2" width="525" height="223" /></p>
<p><strong>3. Instalar PostgreSQL</strong></p>
<p>Puesto que necesitamos bases de datos para nuestras aplicaciones, tenemos que instalar un servidor de bases de datos, para ellos instalaremos PostgreSQL, que es un motor 100% libre y muy robusto. Nos dirigimos a la pagina oficial:</p>
<p><a href="http://www.postgresql.org/download/macosx">http://www.postgresql.org/download/macosx</a></p>
<p>Y descargamos el paquete (en el momento de escribir este post, la version era la 8.4.0). Hacemos click en el paquete y arrastramos la aplicación al menu Aplicaciones, cuando ejecutemos el fichero (probablemente tengamos que reiniciar el equipo) comenzará el proceso de instalación. Durante el proceso de instalación, le indicaremos el directorio de instalación, el directorio de datos, la contraseña para el superusuario, el puerto al que servidor debe escuchar (por defecto), la configuración regional (seleccionaremos es_ES) y listo.</p>
<p><strong>4. Instalar PhppgAdmin</strong></p>
<p>PhppgAdmin, es una herramienta web de administración de bases de datos PostgreSQL, es muy sencillo de instalar y utilizar, si estas acostumbrado a PhpmyAdmin, es muy similiar. Para instalarlo, tan solo tienes que dirigirte a su web oficial</p>
<p><a href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/</a></p>
<p>Descargar el fichero y descomprimirlo en la carpeta root del servidor web. Podras acceder a la aplicación, desde la ruta <a href="http://localhost/phpPgAdmin/">http://localhost/phpPgAdmin/</a></p>
<p>Es posible, que tengas problemas para acceder con el usuario root (que para el caso de postgresql, es postgres), porque en estas ultimas versiones se ha deshabilitado el acceso. No obstante, y dado que vamos a trabajar en local, podemos habilitar el acceso root, tan solo modificando el fichero config.inc.php, situado en la carpeta config, localizamos la linea:</p>
<pre>$conf['extra_login_security'] = true;</pre>
<p>Y la sustituimos por esta:</p>
<pre>$conf['extra_login_security'] = false;</pre>
<p>De todos modos, insisto en que esto es peligroso y lo recomendable, es crear un usuario nuevo (desde la consola de postgresql: psql en terminal).</p>
<p><strong>5. Instalamos la libreria Python PostgreSQL</strong></p>
<p>Para establecer las conexiones entre la base de datos y Django necesitamos una libreria adicional denominada <a href="http://initd.org/pub/software/psycopg/">psycopg 2</a>.</p>
<p>Para instalarla la libreria, podemos acceder a terminal y escribir:</p>
<pre>sudo easy_install psycopg2</pre>
<p>Si esto no funciona, tendremos que descargarnos el paquete desde <a href="http://initd.org/pub/software/psycopg/psycopg2-2.0.11.tar.gz">aqui</a>, modificamos la linea:</p>
<pre>pg_config=/Library/PostgreSQL/8.4/bin/pg_config</pre>
<p>Para indicarle la ruta donde esta PostgreSQL.<br />
Luego compilamos e instalamos el paquete, desde terminal:</p>
<pre>python setup.py build
python setup.py install</pre>
<p><em>NOTA</em>: Es posible que necesitemos instalar el compilador <a href="http://gcc.gnu.org/">GCC</a>, si obtenemos un mensaje de error cuando intentemos compilar el paquete, nos dirigimos a <a href="http://developer.apple.com/technology/Xcode.html">http://developer.apple.com/technology/Xcode.html</a> y desde alli, previo registro en el <a href="https://connect.apple.com/">ADC Membership</a> de Apple, podremos descargar <a href="http://es.wikipedia.org/wiki/Xcode">XCode</a>, donde se incluye el compilador GCC.</p>
<p><strong>6. Comprobamos que todo funciona</strong></p>
<p>Creamos un proyecto en Django y arrancamos el servidor de desarrollo que incluye, para ver si funciona correctamente:</p>
<pre>mkdir django_projects
cd ~/django_projects
django-admin.py startproject mi_proyecto
cd mi_proyecto
python manage.py runserver</pre>
<p>Accedemos a la dirección <a href="http://127.0.0.1:8000">http://127.0.0.1:8000</a> y si todo ha ido bien, podremos ver la pantalla de bienvenida de Django:<br />
<img class="aligncenter size-full wp-image-57" src="http://django.canariblogs.com/files/imagen-11.png" alt="imagen-11" width="528" height="475" /></p>
<p>Ahora comprobaremos la conexión con la base de datos, para ello accedemos primeramente a phpPgAdmin y creamos una base de datos que se llame prueba.<br />
Seguidamente, editamos la configuración de la base de datos en el fichero settings.py que se encuentra dentro del directorio mi_proyecto, debe quedar asi:</p>
<pre lang="python" line="12">
DATABASE_ENGINE = 'postgresql_psycopg2'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'prueba'             # Or path to database file if using sqlite3.
DATABASE_USER = 'postgres'             # Not used with sqlite3.
DATABASE_PASSWORD = 'contraseña'         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.</pre>
<p>Ahora abrimos una ventana de terminal, y nos situamos en el directorio mi_proyecto, y escribimos:</p>
<pre>
python manage.py shell
&gt;&gt;&gt; from django.db import connection
&gt;&gt;&gt; cursor = connection.cursor()
</pre>
<p>Si no pasa nada, significa que la base de datos está configurada correctamente. </p>
]]></content:encoded>
			<wfw:commentRss>http://django.canariblogs.com/2009/07/07/instalando-django-postgresql-en-mac-os-x-leopard-1057/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django: El Framework</title>
		<link>http://django.canariblogs.com/2009/07/04/django-el-framework/</link>
		<comments>http://django.canariblogs.com/2009/07/04/django-el-framework/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 08:28:58 +0000</pubDate>
		<dc:creator>Canario</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://django.canariblogs.com/?p=4</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Despues de probar por un tiempo <a href="http://www.cakephp.org" target="_blank">CakePHP</a>, dado que <a href="http://www.php.net">PHP</a> 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 experiencias de principiante con este Framework.</p>
<p>Pero, que es <a href="http://www.djangoproject.com">Django</a>:</p>
<blockquote><p>Django es un framework de desarrollo web de código abierto, escrito en Python, que cumple en cierta medida el paradigma del Modelo Vista Controlador. Fue desarrollado en origen para gestionar varias páginas orientadas a noticias de la World Company de Lawrence, Kansas, y fue liberada al público bajo una licencia BSD en julio de 2005.</p></blockquote>
<p>Antes de adentrarme en este nuevo mundo, he localizado algunos tutoriales e información en castellano que quisiera compartir con ustedes:</p>
<ul>
<li>Dado que es un Framework en Python, conozcamos un poco de este lenguaje: <a title="Python para Todos" href="http://mundogeek.net/tutorial-python/" target="_blank">Python para Todos.</a></li>
<li>El <a href="http://www.djangobook.com/en/2.0/">Django Book</a> oficial (en inglés), aunque <a href="http://the-geek.org/django-book/">aquí</a> parece que lo estan traduciendo.</li>
<li><a href="http://django.canariblogs.com/files/django-book-es-1.0.zip">El libro de Django 1.0.</a> Traducción al castellano de <a href="http://www.apress.com/book/view/1590597257/" target="_blank">The Definitive Guide to Django: Web Development Done Right</a> de Adrian Holovaty y Jacob Kaplan-Moss. La versión online esta disponible <a href="http://humitos.homelinux.net/django-book-sphinx/">aquí</a>.</li>
<li>Diapositivas del curso <a href="http://django.canariblogs.com/files/Curso_Django.zip">Introducción a Django</a>, impartido por <a class="reference" href="http://rmorales.com.ar/blog/">Ramiro Morales</a>, <a class="reference" href="http://www.linkedin.com/in/aleperalta">Alejandro Peralta</a> y <a class="reference" href="http://john.lenton.com.ar/">John Lenton</a> en Argentina.</li>
<li>Comunidad española de <a href="http://django.es/">Django</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://django.canariblogs.com/2009/07/04/django-el-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
