Capítulo 1. Instalación Instalación

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Flask es un marco de trabajo pequeño para la mayoría de los estándares, lo suficientemente pequeño como para llamarlo "micro-marco de trabajo" y lo suficientemente pequeño como para que, una vez que te familiarices con él, puedas leer y entender todo su código fuente.

Pero ser pequeño no significa que haga menos que otros marcos. Flask se diseñó como un marco extensible desde cero; proporciona un núcleo sólido con los servicios básicos, mientras que las extensiones proporcionan el resto. Como puedes elegir los paquetes de extensiones que quieras, acabas teniendo una pila ligera que no se hincha y que hace exactamente lo que necesitas.

Flask tiene tres dependencias principales. Los subsistemas de enrutamiento, depuración e Interfaz de Pasarela del Servidor Web (WSGI) proceden de Werkzeug; el soporte de plantillas lo proporciona Jinja2; y la integración de la línea de comandos procede de Click. Todas estas dependencias son obra de Armin Ronacher, el autor de Flask.

Flask no tiene soporte nativo para acceder a bases de datos, validar formularios web, autenticar usuarios u otras tareas de alto nivel. Estos y muchos otros servicios clave que necesitan la mayoría de las aplicaciones web están disponibles a través de extensiones que se integran con los paquetes principales. Como desarrollador, puedes elegir las extensiones que mejor se adapten a tu proyecto, o incluso escribir las tuyas propias si te apetece. Esto contrasta con un marco más amplio, en el que la mayoría de las opciones se han tomado por ti y son difíciles o a veces imposibles de cambiar.

En este capítulo aprenderás a instalar Flask. El único requisito es un ordenador con Python instalado.

Nota

Se ha comprobado que los ejemplos de código de este libro funcionan con Python 3.5 y 3.6. También se puede utilizar Python 2.7 si se desea, pero dado que esta versión de Python no se va a mantener después del año 2020, se recomienda encarecidamente que utilices las versiones 3.x.

Nota

Si tienes previsto utilizar un ordenador con Microsoft Windows para trabajar con el código de ejemplo, tienes que decidir si quieres utilizar un enfoque "nativo" basado en las herramientas de Windows, o configurar tu ordenador de forma que te permita adoptar el conjunto de herramientas más generalizado basado en Unix. El código presentado en este libro es en gran medida compatible con ambos enfoques. En los pocos casos en que los enfoques difieren, se sigue la solución Unix y se indican las alternativas para Windows.

Si decides seguir un flujo de trabajo Unix, tienes algunas opciones. Si utilizas Windows 10, puedes activar el Subsistema de Windows para Linux (WSL), que es una función con soporte oficial que crea una instalación de Ubuntu Linux que se ejecuta junto a la interfaz nativa de Windows, dándote acceso a un shell bash y al conjunto completo de herramientas basadas en Unix. Si WSL no está disponible en tu sistema, otra buena opción es Cygwin, un proyecto de código abierto que emula el subsistema POSIX utilizado por Unix y proporciona ports de un gran número de herramientas Unix.

Crear el directorio de aplicaciones

Para empezar, necesitas crear el directorio que albergará el código de ejemplo, que está disponible en un repositorio de GitHub. Como se explica en "Cómo trabajar con el código de ejemplo", la forma más cómoda de hacerlo es descargando el código directamente de GitHub utilizando un cliente Git. Los siguientes comandos descargan el código de ejemplo de GitHub e inicializan la aplicación a la versión 1a, que es la versión inicial con la que trabajarás:

$ git clone https://github.com/miguelgrinberg/flasky.git
$ cd flasky
$ git checkout 1a

Si prefieres no utilizar Git y en su lugar escribir o copiar manualmente el código, puedes simplemente crear un directorio de aplicación vacío como se indica a continuación:

$ mkdir flasky
$ cd flasky

Entornos virtuales

Ahora que ya tienes creado el directorio de la aplicación, es el momento de instalar Flask. La forma más cómoda de hacerlo es utilizar un entorno virtual. Un entorno virtual es una copia del intérprete de Python en la que puedes instalar paquetes de forma privada, sin afectar al intérprete global de Python instalado en tu sistema.

Los entornos virtuales son muy útiles porque evitan el desorden de paquetes y los conflictos de versiones en el intérprete de Python del sistema. Crear un entorno virtual para cada proyecto garantiza que las aplicaciones sólo tengan acceso a los paquetes que utilizan, mientras que el intérprete global permanece ordenado y limpio y sólo sirve como fuente a partir de la cual se pueden crear más entornos virtuales. Como ventaja añadida, a diferencia del intérprete de Python de todo el sistema, los entornos virtuales pueden crearse y gestionarse sin derechos de administrador.

Crear un entorno virtual con Python 3

La creación de entornos virtuales es un área en la que difieren los intérpretes de Python 3 y Python 2. Con Python 3, los entornos virtuales están soportados de forma nativa por el paquete venv que forma parte de la biblioteca estándar de Python.

Nota

Si utilizas el intérprete estándar de Python 3 en un sistema Linux Ubuntu, el paquete estándar venv no está instalado por defecto. Para añadirlo a tu sistema, instala el paquete python3-venv como se indica a continuación:

$ sudo apt-get install python3-venv

El comando que crea un entorno virtual tiene la siguiente estructura:

$ python3 -m venv virtual-environment-name

La opción -m venv ejecuta el paquete venv de la biblioteca estándar como un script independiente, pasando el nombre deseado como argumento.

Ahora vas a crear un entorno virtual dentro del directorio flasky. Una convención comúnmente utilizada para los entornos virtuales es llamarlos venv, pero puedes utilizar un nombre diferente si lo prefieres. Asegúrate de que tu directorio actual es flasky y, a continuación, ejecuta este comando:

$ python3 -m venv venv

Una vez completado el comando, tendrás un subdirectorio con el nombre venv dentro de flasky, con un nuevo entorno virtual que contiene un intérprete de Python para uso exclusivo de este proyecto.

Crear un entorno virtual con Python 2

Python 2 no tiene un paquete venv. En esta versión del intérprete de Python, los entornos virtuales se crean con la utilidad de terceros virtualenv.

Asegúrate de que tu directorio actual está en flasky y, a continuación, utiliza uno de los dos comandos siguientes, dependiendo de tu sistema operativo. Si utilizas Linux o macOS, el comando es:

$ sudo pip install virtualenv

Si utilizas Microsoft Windows, asegúrate de abrir una ventana de símbolo del sistema utilizando la opción "Ejecutar como administrador" y, a continuación, ejecuta este comando:

$ pip install virtualenv

El comando virtualenv toma como argumento el nombre del entorno virtual. Asegúrate de que tu directorio actual es flasky y, a continuación, ejecuta el siguiente comando para crear un entorno virtual llamado venv:

$ virtualenv venv
New python executable in venv/bin/python2.7
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.

Se creará un subdirectorio con el nombre venv en el directorio actual, y todos los archivos asociados al entorno virtual estarán dentro de él.

Trabajar con un entorno virtual

Cuando quieras empezar a utilizar un entorno virtual, tienes que "activarlo". Si utilizas un ordenador Linux o macOS, puedes activar el entorno virtual con este comando:

$ source venv/bin/activate

Si utilizas Microsoft Windows, el comando de activación es:

$ venv\Scripts\activate

Cuando se activa un entorno virtual, la ubicación de su intérprete de Python se añade a la variable de entorno PATH en tu sesión de comandos actual, que determina dónde buscar los archivos ejecutables. Para recordarte que has activado un entorno virtual, el comando de activación modifica tu símbolo del sistema para incluir el nombre del entorno:

(venv) $

Una vez activado un entorno virtual, al escribir python en el símbolo del sistema se invocará al intérprete del entorno virtual en lugar de al intérprete de todo el sistema. Si utilizas más de una ventana de símbolo del sistema, tienes que activar el entorno virtual en cada una de ellas.

Nota

Aunque activar un entorno virtual suele ser la opción más cómoda, también puedes utilizar un entorno virtual sin activarlo. Por ejemplo, puedes iniciar una consola Python para el entorno virtual venv ejecutando venv/bin/python en Linux o macOS, o venv\Scripts\python en Microsoft Windows.

Cuando hayas terminado de trabajar con el entorno virtual, escribe deactivate en el símbolo del sistema para restaurar la variable de entorno PATH de tu sesión de terminal y el símbolo del sistema a sus estados originales.

Instalar paquetes de Python con pip

Los paquetes de Python se instalan con el gestor de paquetes pip, que se incluye en todos los entornos virtuales. Al igual que el comando python, si escribes pip en una sesión de símbolo del sistema, se invocará la versión de esta herramienta que pertenezca al entorno virtual activado.

Para instalar Flask en el entorno virtual, asegúrate de que el entorno virtual venv está activado y, a continuación, ejecuta el siguiente comando:

(venv) $ pip install flask

Cuando ejecutes este comando, pip no sólo instalará Flask, sino también todas sus dependencias. Puedes comprobar qué paquetes están instalados en el entorno virtual en cualquier momento utilizando el comando pip freeze:

(venv) $ pip freeze
click==6.7
Flask==0.12.2
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
Werkzeug==0.12.2

La salida de pip freeze incluye los números de versión detallados de cada paquete instalado. Es probable que los números de versión que obtengas sean diferentes de los que se muestran aquí.

También puedes comprobar que Flask se ha instalado correctamente iniciando el intérprete de Python e intentando importarlo:

(venv) $ python
>>> import flask
>>>

Si no aparece ningún error, puedes felicitarte: estás preparado para el siguiente capítulo, en el que escribirás tu primera aplicación web.

Get Desarrollo Web con Flask, 2ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.