Plan de estudios
Curso: Curso en Desarrollo Web Backend
Acceso

Curriculum

Curso en Desarrollo Web Backend

Node

0/0
Text lesson

Configura tu sistema e Inicia tu primera Aplicación

¡Bienvenido!

Este será el comienzo de una aventura en la cual aprenderás a desarrollar aplicaciones con el framework de Python, Flask.

Puedes descargar el resultado final de la primera app que vamos a crear a lo largo de este curso en este repositorio de github, descarga los archivos fuente desde aquí.

Nota:

Librerías a instalar en este capítulo

  • virtualenv
  • flask

¿Que es Flask?

Flask es un framework de desarrollo web escrito en Python. Muchas veces es clasificado como micro-framework, ya que no requiere herramientas adicionales ni paquetes extra para ser utilizado. Es compatible con extensiones que pueden agregar funcionalidades como si estuvieran implementadas directamente en Flask. Actualmente hay extensiones para Flask que agregan muchas de las funcionalidades que tienen otros frameworks.

Flask está implementado en sitios web como Pinterest y LinkedIn.

¿Como Instalar Flask en Tu Sistema?

Antes de iniciar, es necesario que tengas Python instalado en tu sistema. Para eso te recomendamos este post.

Luego de esto, para evitar futuros problemas de compatibilidad, se crea un entorno virtual o virtual environment. Un entorno virtual es una herramienta que ayuda a mantener separadas las dependencias de nuestros proyectos. Su uso permite, por ejemplo, tener instalado Flask 1.0.0 para un proyecto y Flask 1.1.1 para otro, evitando así, posibles problemas de compatibilidad entre las distintas versiones. Esta herramienta es útil para cualquier practica de programación (no solo para Flask).

Lo que hace este entorno virtual es crear una “copia” del interprete de Python y permite que lo usemos e instalemos en el cualquier paquete que sea necesario, sin necesidad de alterar el interprete de Python original o el desarrollo de otro proyecto.

Luego de Python 3.4, el soporte de entornos virtuales viene incluido en la versión de Python, por lo tanto, se pueden crear entornos virtuales desde la terminal con el siguiente comando:

$ python3 -m venv entorno

En caso de que no esté instalado o la terminal arroje algún error se tienen dos posibilidades:

  • venv no está instalado: venv no es compatible o no viene instalado de forma nativa en algunos sistemas como Ubuntu o Debian, por lo tanto, se puede instalar desde la terminal con el siguiente comando:

$ sudo apt install python3-venv

De esta forma, se descargará e instalará todo lo necesario para que se puedan crear entornos virtuales con el comando anterior.

  • Instalar virtualenv en caso de que no esté instalado: En el caso de que se esté trabajando con una versión de Python inferior a la 3.4 o simplemente si prefieres trabajar con virtualenv, se puede instalar desde la terminal con el comando:

En linux:

$ sudo apt install python3-virtualenv

En windows:

pip install virtualenv

Este comando creará el entorno virtual con el interprete de python que el sistema tenga definido por defecto. En caso de que se quiera escoger una versión de Python distinta, se usa el mismo comando con un flag que permite escoger la versión de Python. Por ejemplo, si en nuestro sistema tenemos Python 2 por defecto y queremos que el entorno virtual tenga por defecto Python 3, se usa ejecuta el siguiente comando:

En linux:

$ virtualenv -p python3 "Nombre que le pondrás a tu entorno"

En windows:

python -m venv "Nombre que le pondrás a tu entorno"

Esto creará el entorno virtual con Python 3.

Para el objetivo que tenemos, crearemos un directorio llamado flask1 y entraremos en el. En este directorio crearemos el entorno virtual y será el lugar donde estarán todos los archivos de nuestro proyecto. Esto es:

$ mkdir flask1 && cd flask1 && mkdir env

Luego, debemos instalar los archivos de Flask en nuestro entorno. Para esto utilizaremos el gestor de paquetes de Python, pip, el cual descarga todo de PyPi, el repositorio oficial de los paquetes de Python, y hace la instalación.

De forma general, pip, descarga los paquetes con el siguiente comando:

$ pip install <nombre del paquete>

Como queremos instalar Flask en nuestro entorno virtual, necesitamos activarlo primeramente. Para esto, estando situados en la carpeta “flask1“, ejecutamos el siguiente comando:

En linux:

$ "nombre de tu entorno"/bin/activate

En windows:

"nombre de tu entorno"\scripts\activate

En mi caso, le di al entorno el nombre “env” una vez activado el entorno, nos aparecerá el nombre del entorno en la terminal de la siguiente manera:

(env) λ ~/flask1 $

Con el entorno virtual activo, procedemos a instalar Flask utilizando pip:

$ pip install flask

Si estamos utilizando Python 3, entonces se utiliza pip3:

$ pip3 install flask

En Linux, el comando para instalar Flask es:

$ sudo apt install python3-flask

1º aplicación en flask

“Hola, Mundo”

Para probar que todo esté bien, crearemos una pequeña aplicación con Flask, que diga “Hola, Mundo”.

En un archivo que llamaremos app.py vamos a utilizar el siguiente código:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def Hola():
    return 'Hola Mundo Flask es facil!'
if __name__ == "__main__":
    
    app.run(host='0.0.0.0',
            debug=True,
            port=8080)

Con este simple código acabamos de crear nuestro “Hola Mundo” en nuestro localhost y para verlo 1º ejecutamos el código. Al ejecutar el código en la consola de python (en mi caso, la consola de spyder ya que tengo anaconda) me parece los siguiente:

La imagen de arriba nos dice que ya funcionando nuestra aplicación. Para ver el resultado escribimos en el navegador -> localhost:8080/ y nos debería aparecer en cualquier navegador una imagen como la siguiente:

2º aplicación en flask (Con esta estructura trabajaremos a lo largo del curso)

“Hola, Mundo”

Ahora vamos a hacer lo mismo que antes pero separadamente para que se entienda mejor lo que estamos haciendo. Primero que nada esta va hacer la estructura de nuestro pequeño proyecto:

blog/
  app/
    __init__.py
    rutas.py
  blog.py
  .flaskenv

Necesitamos crear una carpeta blog en la que hay un archivo blog.py y dos carpetas (venv y app). Dentro de la capeta app se encuenta los archivos __init__.py y rutas.py, y en la raíz de nuestro proyecto los archivos blog.py y .flaskenv.

Los codigos de los archivos python son los siguientes:

-rutas.py

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hola Mundo!"

-__init__.py

from flask import Flask

app = Flask(__name__)

from app import rutas

-blog.py

from app import app

Flask variables de entorno

Vamos a instalar ahora una librería que nos ayudará a mantener nuestras variables de entorno configuradas en un archivo llamado .flaskenv, a través del comando pip lo instalamos:

pip install python-dotenv

En el archivo .flaskenv debemos escribir el siguiente código

FLASK_ENV=development
FLASK_DEBUG=1
FLASK_APP=blog.py

Verás, te explico:

  • FLASK_ENV=development Activa el modo desarrollo de nuestra aplicación para que esta detecte cambios en nuestras vistas, modelos y rutas de nuestra app sin necesidad de estar deteniendo y reiniciando el servidor.
  • FLASK_DEBUG=1 Una vez en modo desarrollo, esta variable activa el modo debug de flask, que nos permite ver nuestros errores mientras estamos desarrollando
  • FLASK_APP=blog.py Variable de entorno que nos permite usar flask run desde la consola de nuestro entorno virtual.

Para poner en marcha la app ejecutamos flask run:

flask run

Aqui podemos ver lo que aparece en el cmd cuando ejecutamos el proyecto:

(env) λ flask run
 * Serving Flask app "blog.py" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 115-955-097
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Ahora ya podemos ver el resultado de nuestra aplicación si escribimos en el navegador la dirección http://localhost:5000/

Es importante aclarar que el archivo .flaskenv debe ser modificado al momento de subir la aplicación a un servidor, es decir; cuando nuestra aplicación se encuentre en modo de producción, pero eso lo haremos más adelante, especificamente al final del curso.