Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo crear una API usando Flask Framework

 


Siga estos sencillos pasos para programar una API básica usando Flask

Como sabemos, Python es un lenguaje de programación que hace uso de marcos para crear una serie de aplicaciones web, sitios web, API y aplicaciones de escritorio. Pero, ¿qué es realmente un marco? Un marco es una colección de bibliotecas y módulos que ayudan a los desarrolladores a cos cubierto anteriormente, algunos marcos de Python incluyen Flask , Tornado, Pyramid y Django. A continuación, veremos dónde brilla Flask y describiremos cómo usarlo para crear una API simrear aplicaciones complejas, escalables, fáciles de mantener y confiables. Un Framework generalmente ayuda a proporcionar código y extensiones reutilizables. Como hemple en Python.

Introducción a Flask

En primer lugar, ¿qué es Flask? Flask es básicamente un marco de aplicación micro web escrito en Python. Los desarrolladores a menudo usan Flask para crear aplicaciones web, administración de solicitudes HTTP y renderizado de plantillas. Por "micro aplicación web", queremos decir que no es un marco de trabajo completo.

El término micro se refiere a hacer que la parte central sea simple y bastante extensible. Dado que Flask es liviano, es fácil trabajar con él en cualquier proyecto: es más fácil encontrar errores y corregir errores que un marco completo. También puede utilizar Flask para crear productos impresionantes. Muchas grandes empresas como Netflix, LinkedIn, Pinterest, Twilio, Uber y Dropbox usan Flask.

Ahora surge la siguiente pregunta: si ya estamos usando el marco Django, que es famoso por crear aplicaciones web y API debido a su estructura de proyecto establecida y herramientas integradas, entonces ¿por qué necesitamos Flask? Bueno, Flask podría ser más útil en comparación con Django porque es como un lienzo vacío para crear aplicaciones basadas en Python: no tiene un diseño de proyecto y tiene pocas dependencias. Flask puede proporcionar sugerencias de bibliotecas y herramientas que se utilizarán con fines de desarrollo.

Llegando a la historia de Flask, fue lanzado como una broma de los inocentes en 2010 por Armin Ronacher, quien lidera un grupo de Python llamado Pocco. No era tan popular en el momento del desarrollo, pero en una encuesta de Python Developers de 2018, Flask recibió mucha fanfarria. Para enero de 2020, se había vuelto muy popular en GitHub. Flask se basa en Werkzeug, el kit de herramientas WSGI y el motor Jinja2, que son proyectos de Pocco.

  • Werkzeug : utilizado por el marco Flask como una de sus bases para implementar solicitudes, objetos de respuesta y otras funciones de utilidad.
  • Jinja2 : Un motor de plantillas utilizado en Python para combinarlo con fuentes de datos y obtener páginas web dinámicas.
  • WSGI : una interfaz de puerta de enlace de servidor web. El uso de WSGI es estándar para el desarrollo de aplicaciones web en Python.

Características del matraz

Algunas características importantes de Flask son las siguientes:

  • Flask tiene su propio servidor de desarrollo para ejecutar cualquier aplicación y depurador que actualiza el servidor cuando realiza cambios en el código. El servidor solo está destinado a ser utilizado para el desarrollo y no para la implementación.
  • Es compatible con Jinja2, que es fácil de diseñar y permite una ejecución segura en un espacio aislado. Las plantillas y Jinja permiten un fácil intercambio de datos entre frontend y backend. Entonces es una especie de Puente en Frasco.
  • Se basa en una herramienta Werkzeug WSGI que proporciona una interfaz de puerta de enlace de servidor web para comunicarse entre un servidor web y una aplicación web.
  • Admite cookies y sesiones para que pueda mejorar la experiencia de navegación en Internet.
  • También proporciona una amplia documentación con ejemplos para hacer referencia cuando necesite ayuda.
  • Las clases de matraces permiten extensiones como biblioteca de base de datos, manejo de carga, validación de formularios y tecnologías de autenticación abierta.
  • El sencillo código repetitivo para la creación y ejecución de aplicaciones hace que Flask sea una mejor opción de marco web que Django.

Comparación de Flask y Django

Un desarrollador web tiene varias opciones para elegir para marcos web cuando usa Python como lenguaje de programación del lado del servidor. Pueden elegir un marco web de pila completa como Django o un marco micro web para crear aplicaciones web simples, como Flask. Ambas son opciones populares, por lo que estos son los beneficios e inconvenientes de ambas opciones:

  • Al ser un marco web Python de pila completa, Django facilita la realización de tareas de autenticación de usuarios, enrutamiento de URL y migración de la estructura de la base de datos. Por otro lado, la simplicidad de Flask mantiene el núcleo de una aplicación web simple y extensible.
  • Django proporciona un marco de administración listo para usar, pero esa función no está disponible en Flask.
  • Flask se basa en la plantilla Jinja2 que está inspirada en la plantilla Django.
  • Django también proporciona una herramienta de arranque incorporada para iniciar aplicaciones web, pero Flask no.
  • Flask no proporciona ORM integrado para soporte de bases de datos, mientras que Django sí.

Ambos marcos web son opciones populares, pero también tienen ventajas y desventajas. Por tanto, es responsabilidad del desarrollador tener en cuenta los requisitos de los proyectos de los clientes para hacer un mejor uso de la tecnología. Las características de Django brindan la posibilidad de crear grandes proyectos complejos, mientras que Flask facilita aplicaciones web más simples al proporcionar solo la funcionalidad requerida.

Ahora que entendemos Flask, profundicemos en la parte de codificación.

Prerrequisitos:

  • Pitón
  • Virtualenv

Paso 1: instalación del matraz y configuración del servidor

Suponemos que ya ha instalado Python y está actualizado. Así que configuremos nuestro proyecto y configuremos un entorno virtual.

¿Por qué necesitamos un entorno virtual?

Se utiliza un entorno virtual para crear un entorno Python aislado para diferentes proyectos. Creamos entornos virtuales porque diferentes proyectos tienen diferentes dependencias. Además, ayuda a mantener limpia la carpeta de paquetes globales.

Así que ahora abre el terminal escribe el siguiente comando:

pip3 install virtualenv

Una vez que esté instalado, creemos un directorio o carpeta para su proyecto. Estamos usando flask-testcomo nombre de carpeta, pero puede elegir cualquier nombre para su proyecto.

mkdir flask-test

Luego, cambie el directorio:

cd flask-test

Ahora es el momento de crear un entorno virtual para nuestro proyecto para que las dependencias no estropeen la carpeta del paquete global.

Ejecute el siguiente comando ahora:

virtualenv .

Y entonces,

source bin/activate

Explicación : Lo que estamos haciendo aquí es decirle al módulo que la carpeta actual se puede usar para el entorno virtual, y luego está activando el entorno virtual en el segundo paso.

Ahora, una vez que haya activado el entorno virtual, instalemos el paquete Flask en ese entorno.

Ahora ejecute el siguiente comando:

Python3 -m pip install Flask

Hasta ahora, hemos creado nuestra carpeta de proyecto, hemos instalado y creado un entorno virtual para nuestro proyecto e instalado Flask en el entorno. Vayamos hacia el Paso 2.

Paso 2: escriba un código

Ahora cree un archivo app.pyy pegue el siguiente código:

from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello_world():
return 'This is my first API call!'

Asegúrese de guardar su app.pyarchivo en el directorio actual.

Explicación del código: Primero, estamos importando el flaskmódulo a nuestra aplicación y luego definiendo la ruta API. Se @utiliza para definir la ruta de la API. Estamos pasando /, lo que significa que esta es nuestra ruta base.

Paso 3: ejecutar el servidor y realizar la primera llamada a la API

Una vez que haya terminado con la parte de codificación, es hora de ejecutar nuestro servidor Flask y realizar nuestra primera llamada a la API.

Para ejecutar el servidor, ejecute el siguiente comando:

flask run

Debería ver la siguiente salida en el terminal:

* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Ahora abra su herramienta de prueba de API favorita. Usaremos Postman  en el tutorial a continuación, pero puede elegir cualquiera de las herramientas mencionadas aquí .

Ahora copie y pegue la URL impresa en el terminal y haga una solicitud GET. Debería ver el siguiente resultado:

Uso de Postman para enviar una llamada GET a nuestra API Flask

TADA! Felicitaciones, ha realizado su primera llamada a la API. Ahora creemos algunas API basadas en diferentes métodos como POST.

Paso 4: API POST

Flask hace que sea muy fácil programar diferentes comandos para varios métodos HTTP como POST, GET, PUT, etc. En el código anterior, puede ver que está la función routeEl segundo parámetro que se pasa a esta función es en realidad el método de la ruta. Si no se pasa nada, es OBTENER.

Pero también tenemos que importar dos módulos adicionales nombrados requestjsonifyusados ​​para obtener los parámetros y la conversión JSON.

Ahora definamos otra ruta para nuestras solicitudes POST. Así que abra el app.pyarchivo y reemplace el código existente con el siguiente código:

from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route('/')
def hello_world():
return 'This is my first API call!'

@app.route('/post', methods=["POST"])
def testpost():
input_json = request.get_json(force=True)
dictToReturn = {'text':input_json['text']}
return jsonify(dictToReturn)

Explicación del código : Aquí, hemos importado algunos módulos más de Flask, como requestjsonifyLo estamos usando requestpara obtener los datos que envía el usuario y lo estamos usando jsonifypara convertir diccionarios a JSON. Hemos agregado una ruta más que es /posty también pasa POSTcomo una lista y devuelve lo que el usuario está enviando en los parámetros.

Ahora, una vez más, diríjase a la herramienta de prueba de API y presione URL: con parámetros:
http://127.0.0.1:5000/post

{
"text": "Post Example"
}

Como lo editamos app.py, antes de ejecutar una POSTllamada a la API, deberá reiniciar el servidor virtual. Para hacerlo, (presione CTRL + C para salir), y luego ingrese flask runa la Terminal nuevamente.

Debería ver la siguiente respuesta:

Enviar una llamada POST a nuestra API local de Flask

Una API básica con Flask

Ahora hemos terminado con el tutorial de Flask más básico con un punto final de API GET y POST. Este tutorial fue solo una esencia para que pueda comprender los conceptos básicos de Flask.

Flask es una herramienta muy poderosa y, en un nivel avanzado, puedes lograr muchas cosas con ella. Por ejemplo, puede agregar autenticación con JWT u OAuth. También puede conectar el código con un backend MySQL y realizar operaciones CRUD.

Espero que hayas aprendido algo nuevo de este artículo y, con suerte, te facilité la comprensión de los conceptos básicos de creación de API y Flask.

Publicar un comentario

0 Comentarios