paint-brush
Primeros pasos con MariaDB usando Docker, Python y Flaskpor@grobbert
17,608 lecturas
17,608 lecturas

Primeros pasos con MariaDB usando Docker, Python y Flask

por Rob Hedgpeth5m2020/04/29
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Primeros pasos con MariaDB usando Docker, Python y Flask usando Docker y Flask. MariaDB se ha convertido en una de las bases de datos más populares elegidas por los desarrolladores durante la última década. La Fundación MariaDB es el custodio del código de la comunidad MariaDB y el guardián de los principios de código abierto que la han impulsado a ser una de las soluciones de bases de datos más populares del mundo. Con la ayuda de Flask, podrá comenzar a usar MariaDB con Docker y Python (en cuestión de minutos, para que pueda comprobarlo usted mismo).

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Primeros pasos con MariaDB usando Docker, Python y Flask
Rob Hedgpeth HackerNoon profile picture

Desde que se bifurcó de MySQL en 2009, MariaDB se ha convertido en una de las bases de datos más populares elegidas por los desarrolladores durante la última década. Si bien es probable que muchos tecnólogos hayan gravitado hacia él como una solución debido a sus raíces de código abierto y que está arraigado en el mundo de las bases de datos relacionales, eso realmente solo comienza a arañar la superficie de lo que MariaDB tiene para ofrecer.

No es ningún secreto que, a lo largo de los años, MariaDB ha agregado muchas características y funcionalidades que la han diferenciado de otras soluciones de bases de datos, pero lo que los desarrolladores pueden no saber es que hay dos grupos que contribuyen activamente a la base de código en constante avance; Fundación MariaDB y Corporación MariaDB.

  • MariaDB Foundation es el custodio del código de la comunidad MariaDB y el guardián de la comunidad MariaDB y los principios de código abierto que la han impulsado a ser una de las bases de datos más populares del mundo.
  • MariaDB Corporation también contribuye a la base de código de la comunidad, pero también ofrece productos de nivel empresarial de calidad superior que colocan a MariaDB a la vanguardia de los proveedores de bases de datos. MariaDB Corporation incluso ofrece soluciones basadas en columnas y HTAP , pero estoy divagando.

Con eso en mente, he escrito este breve tutorial para proporcionar una plataforma de lanzamiento para que pueda comenzar a usar MariaDB con Docker y Python (con la ayuda de Flask ), en cuestión de minutos, para que pueda comprobarlo por sí mismo.

Requisitos

Antes de saltar al código, deberá asegurarse de tener algunas cosas en su máquina:

Uso de un contenedor Docker de MariaDB

Para extraer la imagen del servidor MariaDB y activar un contenedor, simplemente abra una ventana de terminal y ejecute lo siguiente:

 $ docker run -p 3306:3306 -d --name mariadb -eMARIADB_ROOT_PASSWORD=Password123! mariadb/server:10.4

El comando anterior activará un contenedor del servidor MariaDB al que puede conectarse y comunicarse mediante el cliente MariaDB .

Si bien ciertamente puede usar una variedad de otros clientes SQL, para mantener las cosas simples y uniformes, solo he incluido ejemplos usando el cliente oficial de MariaDB.

Conéctese a su instancia de MariaDB ejecutando el siguiente comando en una ventana de terminal.

 $ mariadb --host 127.0.0.1 -P 3306 --user root -pPassword123!

Debería ver algo como lo siguiente, lo que significa que se ha conectado con éxito a la instancia de MariaDB.

A continuación, cree una nueva base de datos.

 CREATE DATABASE demo;

Luego crea una nueva tabla.

 CREATE TABLE demo.people ( name VARCHAR ( 50 ));

Finalmente, inserte un par de registros.

 INSERT INTO demo.people VALUES ( 'rob' ), ( 'tracy' ), ( 'sam' ), ( 'duke' );

Primeros pasos con MariaDB Connector/Python

Ahora que ha descargado, instalado y puesto en marcha una base de datos MariaDB (usando Docker), está listo para usarla dentro de una nueva aplicación de Python.

¡Recientemente, MariaDB anunció la disponibilidad de MariaDB Connector/Python beta! Connector/Python permite que los programas de Python accedan a las bases de datos de MariaDB mediante una API que cumple con Python DB API 2.0 (PEP-249).

Los desarrolladores de MariaDB optaron por optimizar el rendimiento del nuevo conector escribiéndolo en C, lo que les permitió aprovechar la biblioteca del cliente MariaDB Connector/C para la comunicación cliente-servidor.

Para usar el nuevo conector MariaDB Python, también deberáinstalar MariaDB Connector/C (v3.1.5+) .

Configurar y activar un entorno virtual

Un entorno virtual es un árbol de directorios que contiene archivos ejecutables de Python y otros archivos que indican que es un entorno virtual. Básicamente, es la columna vertebral para ejecutar su aplicación Python Flask.

La creación de entornos virtuales se realiza ejecutando el siguiente comando:

 $ pyvenv venv
Sugerencia: pyvenv solo está disponible en Python 3.4 o posterior. Para versiones anteriores, utilice la herramienta virtualenv .

Antes de que pueda comenzar a instalar o usar paquetes en su entorno virtual, deberá activarlo . La activación de un entorno virtual colocará los ejecutables pip y pip específicos del entorno virtual en la RUTA de su shell.

Active el entorno virtual con el siguiente comando:

 $ . venv/bin/activate activate

Crear una aplicación Flask

Flask es un marco micro web escrito en Python. Se clasifica como un microframework porque no requiere herramientas o bibliotecas particulares.

TL; DR (si se me permite hacer eso por dos oraciones), es un marco excelente y liviano para usar para una API.

Primero, instala Flask.

 $ pip3 install flask

Luego cree un nuevo archivo llamado api.py que se usará para crear una nueva aplicación Flask , y agrega el siguiente código:

 # import necessary packages import flask # create the flask app app = flask.Flask(__name__) app.config[ "DEBUG" ] = True @app.route('/', methods=['GET']) def index () : return 'Success!' # run the app app.run()

Lo que tiene ahora es la base para una API extremadamente simple. Puede probarlo ejecutando la aplicación y probando el punto final.

Para crear una instancia, se le tiene que dar un nombre. El uso de (__name__) garantiza que se puede iniciar como una aplicación o importar como un módulo. El uso del decorador route() le permite a nuestra aplicación de matraz saber qué URL debe activar el método correspondiente.

Estás listo para ejecutar la aplicación.

 $ python3 api.py

De forma predeterminada, la aplicación comenzará a ejecutarse en el puerto 5000. Puede probar los resultados solicitando datos de http://localhost:5000 .

Integrar con MariaDB

Una vez que haya creado una aplicación Flask simple, estará listo para agregar código para integrarlo con MariaDB.

Comience instalando el conector Python de MariaDB.

 $ pip3 install mariadb

Abra api.py y agregue código para importar los paquetes MariaDB y JSON directamente en la importación del paquete Flask.

 import json import mariadb

A continuación, agregue un objeto de configuración con la información de conexión para su instancia de MariaDB en ejecución.

 config = { 'host' : '127.0.0.1' , 'port' : 3306 , 'user' : 'root' , 'password' : 'Password123!' , 'database' : 'demo' }

El objeto de configuración se usará dentro de un nuevo bloque de método de ruta para conectarse a MariaDB.

 # route to return all people @app.route('/api/people', methods=['GET']) def index () : # connection for MariaDB conn = mariadb.connect(**config) # create a connection cursor cur = conn.cursor() # execute a SQL statement cur.execute( "select * from people" ) # serialize results into JSON row_headers=[x[ 0 ] for x in cur.description] rv = cur.fetchall() json_data=[] for result in rv: json_data.append(dict(zip(row_headers,result))) # return the results! return json.dumps(json_data)

Reuniéndolo todo, el contenido de su api.py debería tener el siguiente aspecto:

 # import the necessary packages import flask import json import mariadb app = flask.Flask(__name__) app.config[ "DEBUG" ] = True # configuration used to connect to MariaDB config = { 'host' : '127.0.0.1' , 'port' : 3306 , 'user' : 'root' , 'password' : 'Password123!' , 'database' : 'demo' } # route to return all people @app.route('/api/people', methods=['GET']) def index () : # connection for MariaDB conn = mariadb.connect(**config) # create a connection cursor cur = conn.cursor() # execute a SQL statement cur.execute( "select * from people" ) # serialize results into JSON row_headers=[x[ 0 ] for x in cur.description] rv = cur.fetchall() json_data=[] for result in rv: json_data.append(dict(zip(row_headers,result))) # return the results! return json.dumps(json_data) app.run()

probandolo

Inicie la aplicación.

 $ python3 api.py

Luego pruebe el punto final de personas . Esto se puede hacer a través de una variedad de técnicas (por ejemplo, directamente dentro de un navegador, Postman , etc.).

Por ejemplo, considerando usar un comando curl :

 $ curl http://localhost:5000/api/people

Lo que produce la siguiente carga útil de respuesta JSON:

 [{ "name" : "rob" },{ "name" : "tracy" },{ "name" : "duke" },{ "name" : "sam" }]

Solo el principio

Esperamos que este breve tutorial lo haya ayudado a comenzar a usar MariaDB con Docker, Python y Flask. Y, sí, este fue un ejemplo muy simple, ¡pero solo se vuelve más emocionante a partir de aquí!

Le recomiendo que revise todo lo que MariaDB tiene para ofrecer y cómo puede usar una base de datos verdaderamente innovadora para crear aplicaciones modernas.