Según Wikipedia:
Django es un framework de desarrollo web de código abierto, escrito en Python, que respeta el patrón de diseño conocido como 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; el framework fue nombrado en alusión al guitarrista de jazz gitano Django Reinhardt.
En junio de 2008 fue anunciado que la recién formada Django Software Foundation se haría cargo de Django en el futuro.La meta fundamental de Django es facilitar la creación de sitios web complejos. Django pone énfasis en el re-uso, la conectividad y extensibilidad de componentes, el desarrollo rápido y el principio No te repitas (DRY, del inglés Don’t Repeat Yourself). Python es usado en todas las partes del framework, incluso en configuraciones, archivos, y en los modelos de datos.
Yo discrepo en algo… Django sigue el patrón MVT, Model-View-Template. El patrón llamado MVT en Django hace referencia a modelo-vista-template, y es sencillo de entender, el modelo sigue siendo el modelo, en este caso, la vista no es una vista, sino que más bien es un controlador que se llama vista, y el template son las vistas del MVC, es decir, los formularios van en template, los formularios hacen peticiones a las vistas’, y las vistas obtienen datos de los modelos, es así de sencillo.
Entonces pasemos a Instalar Django. Primero necesitaremos algunas cosillas:
root@happyharry:/home/koratsuki/Dev_Stuff# apt install python-pip python-pip-whl python-virtualenv virtualenv virtualenvwrapper python-setuptools python-sqlite python-mysqldb python-psycopg2
¿Qué hicimos? Bueno, instalamos el soporte básico para Django, python-pip, python-pip-whl, python-virtualenv, virtualenv, virtualenvwrapper y python-setuptools, son necesarios por si los deseas instalar de internet o desde la consola después de habértelo descargado. Lo demás, python-sqlite, python-mysqldb y python-psycopg2, es solamente el soporte de bases de datos[SQLite, MySQL, y PostgreSQL respectivamente].
Django puede ser instalado de varias maneras:
Vía repositorio.
root@happyharry:/home/koratsuki/Dev_Stuff/virtual-envs# apt install python-django
Pero es la versión 1.7.11[en Debian 8], un poco viejita y muchas cosas han cambiado, por lo que si queremos estar al día, esta no nos sirve.
Vía consola.
En este modo sólo debemos descargar el tarball desde su página web, descomprimirlo en la consola y ejecutar:
koratsuki@happyharry:/home/koratsuki/django-x.y.z$ python setup.py install
Requiere python-setuptools. Nada más… Donde x-y-z es el número de versión de Django, ahora mismo la última versión estable es la 1.10.2.
Vía pip.
root@happyharry:/home/koratsuki/Dev_Stuff/virtual-envs# pip install django
Vía VirtualEnv.
Antes, una pequeña descripción. Virtualenv es una herramienta de desarrollo en Python escrita por Ian Bicking y usada para crear entornos aislados para python, en los que es posible instalar paquetes sin interferir con otros virtualenvs ni con los paquetes de python del sistema. Virtualenvwrapper, es un complemento para virtualenv diseñado por Dough Hellmann que facilita enormemente el uso de virtualenv.
Creamos una carpeta donde almacenaremos el virtualenv:
koratsuki@happyharry:/home/koratsuki/Dev_Stuff$ mkdir virtual-env
Activando el virtualenv:
koratsuki@happyharry:/home/koratsuki/Dev_Stuff$ virtualenv ./virtual-env/ -p python Running virtualenv with interpreter /usr/bin/python New python executable in ./virtual-env/bin/python Installing setuptools, pip...done. koratsuki@happyharry:/home/koratsuki/Dev_Stuff$ cd virtual-env/ koratsuki@happyharry:/home/koratsuki/Dev_Stuff/virtual-env$ source bin/activate
Ahora a descargar Django:
(virtual-env)koratsuki@happyharry:~/Dev_Stuff/virtual-env$ pip install django Downloading/unpacking django Downloading Django-1.10.2-py2.py3-none-any.whl (6.8MB): 8.2kB downloaded
Y así hasta que termine de descargar. Cuando acaba automáticamente lo instala. Como ven, nada díficil.
Si eres de esos que vive detrás de un proxy debes setear las variables de entorno en la consola del virtualenv:
(virtual-env)koratsuki@happyharry:~/Dev_Stuff/virtual-env$ export https_proxy="http://user:pass@proxy:puerto" (virtual-env)koratsuki@happyharry:~/Dev_Stuff/virtual-env$ export http_proxy="http://user:pass@proxy:puerto" (virtual-env)koratsuki@happyharry:~/Dev_Stuff/virtual-env$ export ftp_proxy="http://user:pass@proxy:puerto"
Y después ejecutar nuevamente:
(virtual-env)koratsuki@happyharry:~/Dev_Stuff/virtual-env$ pip install django
Vía easy_install.
(virtual-envs)koratsuki@happyharry:~/Dev_Stuff/virtual-env$ easy_install django
Y para salir del virtualenv e ir a la consola:
(virtual-env)koratsuki@happyharry:~/Dev_Stuff/virtual-env$ deactivate
Ahora bien, no tengo internet, o está muy lenta, pero tengo Django descargado y quisiera ponérselo a ese virtualenv… ¿Cómo lo hago?
Copio Django para una carpeta dentro del virtualenv y desde ahí lo instalo. Así de fácil:
(virtual-env)koratsuki@happyharry:~/Dev_Stuff/virtual-env/tmp/Django-1.9.4$ ls -lsa total 124 4 drwxrwxr-x 11 koratsuki koratsuki 4096 Oct 8 12:42 . 4 drwxr-xr-x 3 koratsuki koratsuki 4096 Oct 8 12:41 .. 32 -rw-rw-r-- 1 koratsuki koratsuki 29323 Mar 5 2016 AUTHORS 4 drwxr-xr-x 5 koratsuki koratsuki 4096 Oct 8 12:42 build 4 -rw-rw-r-- 1 koratsuki koratsuki 1115 Mar 5 2016 CONTRIBUTING.rst 4 drwxr-xr-x 2 koratsuki koratsuki 4096 Oct 8 12:42 dist 4 drwxrwxr-x 17 koratsuki koratsuki 4096 Oct 8 12:42 django 4 drwxrwxr-x 2 koratsuki koratsuki 4096 Mar 5 2016 Django.egg-info 4 drwxrwxr-x 13 koratsuki koratsuki 4096 Mar 5 2016 docs 4 drwxrwxr-x 2 koratsuki koratsuki 4096 Mar 5 2016 extras 4 -rw-rw-r-- 1 koratsuki koratsuki 637 Mar 5 2016 Gruntfile.js 4 -rw-rw-r-- 1 koratsuki koratsuki 611 Feb 20 2016 INSTALL 4 drwxrwxr-x 4 koratsuki koratsuki 4096 Mar 5 2016 js_tests 4 -rw-rw-r-- 1 koratsuki koratsuki 1552 Feb 20 2016 LICENSE 4 -rw-rw-r-- 1 koratsuki koratsuki 378 Mar 5 2016 MANIFEST.in 4 -rw-rw-r-- 1 koratsuki koratsuki 334 Mar 5 2016 package.json 4 -rw-rw-r-- 1 koratsuki koratsuki 1196 Mar 5 2016 PKG-INFO 4 -rw-rw-r-- 1 koratsuki koratsuki 1803 Feb 20 2016 README.rst 4 drwxrwxr-x 2 koratsuki koratsuki 4096 Mar 5 2016 scripts 4 -rw-rw-r-- 1 koratsuki koratsuki 718 Mar 5 2016 setup.cfg 4 -rw-rw-r-- 1 koratsuki koratsuki 3265 Mar 5 2016 setup.py 12 drwxrwxr-x 208 koratsuki koratsuki 12288 Mar 5 2016 tests
Ahora sólo queda:
(virtual-envs)koratsuki@happyharry:~/Dev_Stuff/virtual-env/tmp/Django-1.9.4$ python setup.py install Installing django-admin.py script to /home/koratsuki/Dev_Stuff/virtual-env/bin Installing django-admin script to /home/koratsuki/Dev_Stuff/virtual-env/bin Installed /home/koratsuki/Dev_Stuff/virtual-env/lib/python2.7/site-packages/Django-1.9.4-py2.7.egg Processing dependencies for Django==1.9.4 Finished processing dependencies for Django==1.9.4
Y listo…
Virtualenvwrapper es una utilidad que mejora/acomoda el uso de los virtualenvs, que no es obligatoria en este caso de instalar Django, por lo que no voy a tocar ese tema aquí. Pero existen geniales posts en internet explicando su instalación/configuración y uso.
Hasta aquí todo bien, si se me pasó algo no no entiendes algún detalle, a comentarios, como siempre un saludo y espero les sirva.




Buen tutorial. Añadir que dentro del virtualenv es bueno hacer
pip freeze > req.txtde vez en cuando luego de instalar dependencias. Así podrás reproducir el entonrno exacto en cualquier lugar conpip install -r req.txtBuena esa, anotado, aunque en este caso el tutorial era solamente de instalar Django. Gracias por el detalle. Salu2.
Hola @Koratsuki. Esas configuraciones sirven para ambas versiones de Python o solamente para la 2.7. Personalmente en una instalación de Django en openSUSE Leap 42 no podía encontrar la ruta a la versión 3.5 de Python, lo pude solucionar, sin embargo no recuerdo lo que hice -ya pasó un buen tiempo-. Otra razón es que yo haya cometido un error, tal vez no encontraba Python en sí, porque creo que openSUSE Leap 42 debería tener la versión 3.5 por default.
Debo admitir que Django es bastante complejo para mi, no obstante siempre trato de estar informado y rescatar lo más que se pueda. Gran tutorial!
Saludos.
@Percaff: No lo he probado en Python 3.x, mantengo 2.7, en Debian. Prueba y comenta.
¿Desde dónde .cu me puedo bajar la última version de Django?
Si puedes recibir adjuntos de 2mb me dices para picarlo y enviártelo. Escríbeme otro comentario para saber…
@Koratsuki: Si puedo! mándamelos al correo, mira, deja explicarte, yo comencé hace poco con Django, (si, se que es demasiado para un noob que solo ha trasteado algo de PHP) , tengo un libro, y estoy siguiendo los ejemplos al pie de la letra ¿Tienes documentación actualizada? cursos, libros? en español? si es asi igual te agradezco un envio 😉