Django #2 instalacion y workspace

Django es un Framework de desarrollo web, que consta de una serie de requerimientos básicos los cuales vamos a enseñarte a instalar, para configurar un Workspace óptimo. Este artículo forma parte de nuestra serie de tutoriales sobre Django, si aún no has leído el primero pues, ve de una vez a Django #1 Introducción y MTV.

Hemos hablado de Django, Frameworks, sus características, MTV y MVC pero si aún no estas convencido y te lo preguntabas

Quien usa Django:

Tener una idea de quién está usando Django, puede darnos una idea o hasta inspirarnos para conocer el potencial y que clase de cosas podemos hacer con Django, por ejemplo  Instagram, Disqus, Mozilla, Bitbucket, Last.fm, National Geographic usan Django.

Además si aún tienes dudas y quieres investigar por tu cuenta existe Django Sites, una Database que documenta todos los sitios creados con Django, también si te interesa puedes entrar a ver nuestro post sobre Grandes proyectos hechos con Python.

Instalación:

Como desarrolladores solemos utilizar un conjunto de herramientas para cada trabajo, a este conjunto de herramientas las solemos llamarlo, ambiente de desarrollo o Workspace, que es el conjunto de herramientas y tecnologías que nos van a servir de apoyo o base para la realización de nuestra aplicación, en este tutorial te enseñaremos cual es la manera mas optima de trabajar con Django.

“La configuración básica para trabajar con Django consiste en instalar Python, Pip y Virtualenv.”

Para este tutorial estaré trabajando con Ubuntu LTS 16.04 como ejemplo.

Instalando Python:

Python será la base sin el cual Django no podría funcionar, el lenguaje que da sentido a las instrucciones y códigos escritos en Django. Las distribuciones de Linux suelen venir instaladas con alguna versión de Python 2.X o Python 3.X, tú mismo lo puedes comprobando en tu terminal, tecleando lo siguiente:

python --version  
python3 --version

Muy bien tenemos Python 2.7 y 3.5. Entonces, todo lo que tenemos que hacer es instalar la versión más nueva y estable de Python la 3.7.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update 
sudo apt-get install python3.7

“Todo estes tema de versión 2.X y 3.X es un debate arduo entre la comunidad de desarrolladores de Python, que quizás abordemos en otro artículo, por ahora te bastará con saber que ambas son funcionales y ampliamente aceptadas, pero que cierto grupo de la comunidad de desarrolladores, a decidido quedarse en la versión 2.X de Python, nosotros en cambio apostaremos por la version mas nueva y estable”

“Genial ya hemos instalado, ahora a nuestro siguiente paso nuestro manejador de paquetes.”

Instalando Pip:

Pip(Pip Installs Packages), es una interfaz de línea de comandos, que nos da acceso a un index de paquetes basados en python, de allí el nombre de manejador de paquetes. Estos paquetes pueden ser desde Frameworks tan complejos como Django, hasta pequeñas librerías que nos ayudan a realizar tareas complejas, usualmente para la mayoría de nuestras aplicaciones y proyectos, nos serviremos de varios paquetes, que nos ayudarán a automatizar y realizar ciertas tareas, que reducirán nuestra carga de trabajo, el mismo Django es un paquete más al que pip nos da acceso e instalarlo es sumamente sencillo:

sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3.7 get-pip.py
pip3.7 -V

Instalando Virtualenv:

Virtualenv(Virtual environment), es un ambiente virtual una herramienta que nos permite crear entornos aislados para cada proyecto en Python. Así que podemos instalar paquetes sin interferir con otros entornos de desarrollo. Lo que nos permite, no interferir con alguna otra herramienta o pieza de Software, que estemos desarrollando. Además Virtualenv de la misma manera que Pip es sumamente fácil de instalar:

sudo pip3.7 install virtualenv

Puesto que al crear una aplicación de escritorio o web, un tema recurrente en cuestión de desarrollo serán, las versiones de los paquetes que estemos utilizando, por el hecho de que, un mismo paquete o Software pueden tener más de una versión en curso. Como es el caso de Python cuyas versiones 2.X y 3.X son utilizadas sin dejar descontinuadas la una a la otra.

“Para esta serie de tutoriales recomendamos que es pertinente, trabajar con la versión más actualizada de nuestros paquetes, ya que suelen ser la versiones más optimizadas y libres de bugs, que puedan dañar el performances de nuestra aplicación.”

En primer lugar, hay que tener en cuenta, que a medida que nuestras aplicacion siga creciendo tanto en complejidad como robustez, está requisito se irá volviendo cada vez más irreal, porque es muy posible, que a la hora de implementar nuevas paqueterías en nuestra aplicación existan problemas de compatibilidad. Como resultado de esto, deberemos de solucionar estos problemas, antes de pasarlas a la versión final.

“En primer lugar cuando nos encontramos desarrollando alguna aplicación siempre debemos de tener dos versiones en mente:

La versión de desarrollo, que está para hacer pruebas e implementaciones, usualmente la version que mas suele cambiar.

La versión final, en esta versión siempre debemos asegurarnos que todo se mantenga estable y funcional”

Virtualenv nos permite crear entornos aislados para cada uno nuestros proyectos y sus distintas paqueterías sin mezclarlas entre ellas. Por lo tanto podemos, alojar en una misma computadora o servidor, distintos entornos, con distintas versiones de Python, que pueden trabajar con las mismas o distintas paqueterias y sus subsecuentes versiones.

“Más o menos como tener una serpiente en la bota, solo que más bien, en una caja”

Django, mis primeros pasos:

Finalmente que tenemos todo lo necesario para trabajar con Django, hemos instalado:

  • Pip.
  • Python.
  • Virtualenv.

Ya básicamente estamos listos, para trabajar con cualquier proyecto basado en Python, es hora de enseñarte cómo iniciar Django:

En primer lugar, crearemos una carpeta, donde estará nuestro proyecto:

mkdir myproject
cd myproject

Para empezar ya dentro de nuestra carpeta, es momento de crear nuestro primer entorno virtual e instalar Django:

virtualenv venv -p python3.7

Para continuar debemos activar nuestro Virtualenv de la siguiente manera:

source venv/bin/activate
deactivate

Siempre que queramos activar nuestro Virtualenv, debemos usar la instrucción source seguido de su ubicación, luego el directorio bin y por último activate. Podremos ver reflejada la activación con el nombre de nuestro virtual entre paréntesis en la posición izquierda de nuestra terminal.

Por el contrario si lo que queremos es desactivarlo debemos usar la instrucción deactivate.

Instalando Django en nuestro Virtualenv:

Para instalar Django, en nuestro entorno virtual debemos usar las siguientes instrucciones: 

source venv/bin/activate
pip install django
ademas de Django también estamos instalando un command line o interfaz de línea de comandos. Que nos ayudará con todas las tareas que tengan que ver con Django.

ahora crearemos nuestro primer proyecto en Django usando nuestra command line:

django-admin startproject myproject
La instrucción, creará una carpeta con el nombre que le dimos a la instrucción luego de startproject(en este caso myproject).

Así que dentro de la myproject podremos ver una serie de directorios muy interesantes, de los cuales se sirve Django:

Nuestra estructura de proyecto inicial se compone de estos cinco archivos:

  • manage.py: Un atajo para usar la utilidad de línea de comandos django-admin. Se usa para ejecutar comandos de administración relacionados con nuestro proyecto. Lo usaremos para ejecutar el servidor de desarrollo, ejecutar pruebas, crear migraciones y mucho más.
  • __init__.py: Este archivo vacío le dice a Python que esta carpeta es un paquete de Python.
  • settings.py: este archivo contiene toda la configuración del proyecto. ¡Nos referiremos a este archivo todo el tiempo!
  • urls.py: Este archivo es responsable de mapear las rutas y rutas en nuestro proyecto. Por ejemplo, si quiere mostrar algo en la URL / about /, primero debe mapearla aquí.
  • wsgi.py: este archivo es una interfaz de puerta de enlace simple utilizada para la implementación. No tienes que preocuparte por eso. Solo déjalo ser por ahora.

Django viene con un simple servidor web instalado. Es muy conveniente durante el desarrollo, por lo que no es necesario instalar nada más para ejecutar el proyecto localmente. Podemos probarlo ejecutando el comando:

python manage.py runserver

Por ahora podemos ignorar el error.

Al dirigirnos a link http://127.0.0.1:8000 en nuestro navegador, podremos ver nuestra aplicación corriendo:

 

“Esto es todo por ahora acompáñennos en nuestra próxima entrega donde estaremos hablando más sobre este maravilloso Framework, apps, migraciones, modelos, urls, entre otras muchísimas opciones que nos ayudarán a hacer crecer nuestros proyectos, recuerda ser curioso y probar echando mano de tu editor de texto “