Michael Aboagye es un ingeniero de software/seguridad backend residente en Ghana. Está interesado en la creación de servicios backend seguros con Python.

En este tutorial, veremos cómo podemos construir una aplicación web de diario basada en el framework flask con Couchbase como servidor backend.
Al final de este tutorial, serás capaz de construir una aplicación web sencilla con el framework Flask para enviar los datos de los usuarios a un servidor Couchbase. Además, aprenderás a configurar un servidor Couchbase.
Requisitos previos
Necesitas los siguientes paquetes para ejecutar o clonar el proyecto desde GitHub.
- Marco Flask (última versión)
Flask framework es un micro framework escrito en Python. Es un micro framework porque no viene con un formulario de validación, mecanismo de autenticación, y así sucesivamente. Te permite personalizar las aplicaciones a tu manera.
- Plantilla Jinja (última versión)
Una plantilla Jinja es simplemente un archivo de texto que contiene variables y expresiones, las cuales son reemplazadas cuando una plantilla es renderizada o mostrada.
- Servidor Couchbase (edición comunitaria)
Couchbase Server es una base de datos de documentos NoSQL escalable. Utilizaremos el servidor Couchbase para almacenar los datos de los usuarios.
Crear un entorno virtual
En primer lugar, cree un directorio para alojar el entorno virtual utilizando mkdir mando.
El siguiente comando crea un directorio como proyecto web y lo cambia por el proyecto web directorio.
|
1 2 |
mkdir proyecto web && cd proyecto web Virtualenv diario |
A continuación, cambie al directorio para activar el entorno virtual mediante los siguientes comandos:
|
1 2 3 |
mkdir proyecto web && cd proyecto web Virtualenv diario |
Una vez dentro del entorno virtual, podemos instalar paquetes sin miedo a entrar en conflicto con los paquetes del sistema.
Instalar Flask Framework y otros paquetes
En esta sección, instalaremos el framework Flask escrito en Python y otros paquetes necesarios para el proyecto.
Vamos a instalar los paquetes que necesitamos para este proyecto usando pip y dpkg.
|
1 2 3 4 5 |
pip instale couchbase pip instale jinja Pip instale matraz |
En este tutorial, vamos a ejecutar Couchbase Server a través de Docker. Necesitas tener Docker en tu localhost o máquina de desarrollo para poder extraiga o descargue imágenes de Couchbase desde dockerhub.
Navegue hasta el terminal y escriba lo siguiente para acceder al repositorio de DockerHub:
|
1 |
docker inicio de sesión |
A continuación, se le pedirá que proporcione sus credenciales antes de poder acceder o "extraer" imágenes de DockerHub.
|
1 |
docker tire de couchbase/servidor |
Es necesario ejecutar los comandos Docker como usuario root.
Sin embargo, si prefieres instalar Couchbase Server manualmente, Couchbase proporciona dos formas de instalación para distribuciones basadas en Debian y Redat. Puede consultarlo en Couchbase.
Descargar Python SDK 2.5 para Couchbase Server
Para acceder al servidor Couchbase, necesitamos descargar el cliente Couchbase SDK para acceder a un cluster Couchbase. Couchbase proporciona SDK para lenguajes de programación como Python, .NET y Java. Vamos a descargar e instalar Couchbase SDK para Python usando pip:
|
1 |
pip instale couchbase |
Configurar e iniciar Couchbase Server
Una vez que hayas sacado las imágenes de Couchbase Server de DockerHub, podemos crear y ejecutar un nuevo contenedor usando el siguiente comando:
|
1 |
docker ejecute -d --nombre db -p 8091-8094:8091-8094 -p 11210:11210 couchbase |
docker run: Este comando crea una capa contenedora sobre la imagen de Couchbase y la inicia.
-d : La bandera -d significa que el contenedor se ejecuta como un demonio.
-name : Este es el nombre para el nuevo contenedor
-p : Esta bandera es para la asignación de puertos
Ahora estamos ejecutando el servidor Couchbase en un contenedor.
Dentro de su navegador, visite http://localhost:8091 en su máquina para configurar el servidor Couchbase.

Como puede ver, tenemos opciones para crear un nuevo clúster o unirnos a un clúster existente. Vamos a elegir la opción de crear un nuevo clúster único. Establecer un nombre de Cluster, crear un nombre de usuario para Admin y una contraseña de 6 caracteres como se muestra a continuación:

Vamos con la configuración por defecto. Necesitamos establecer el nombre de host o la dirección IP para nuestro nuevo cluster. No cambiaremos el disco de datos, la ruta del disco de índices y la ruta del disco de análisis para el propósito de este proyecto.

Además, no es necesario modificar las cuotas de memoria a menos que no dispongas de suficiente RAM. Por último, se nos presentan dos opciones: iniciar el servidor Couchbase con la configuración predeterminada o configurar la memoria y los servicios.
Haga clic en el botón que le permite configurar la memoria y los servicios para Couchbase Server.
La sección Nombre de host o dirección IP le permite establecer un nombre de host, por ejemplo localhost o 192.168.15.12. La ruta del disco de datos le permite definir la ruta.
Entonces crear un cubo llamado "users-data" a través de la consola web de Couchbase.
Escribir código del lado del servidor para la aplicación Agenda
Still dentro de su entorno virtual, cree un archivo llamado app.py. Dentro del archivo app.py, copia y pega el siguiente código:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
de matraz importar Frasco de couchbase importar Couchbase cliente = Couchbase.conecte(host = "localhost", Contraseña = "Contraseña_aquí", cubo = "Usuarios-datos") @aplicación.ruta(/home, método=[GET]) def página_de_inicio(): devolver render_template(Inicio.html) @aplicación.ruta(/home/crear-memo), método=[POST]) def crear_memo(): si método == "POST": diario = { "memo" : solicitar.formulario["memo"], "año" : solicitar.formulario["año"], "mes" : solicitar.formulario["mes"], "día" : solicitar.formulario["día"] } Clave=uuid.uuid1.hex() usuario_doc=json.vuelca(diario) cliente.configure(clave, usuario_doc) devolver redirigir(url_para("índice")) devolver render_view("crear.html") |
En el código anterior, hemos importado el framework Flask, y el cliente Couchbase para Python. A continuación, nos conectamos al bucket Users-data a través del método Couchbase client connect. A continuación, creamos una ruta para la página de inicio y la página create-memo para los usuarios.
También podemos crear una ruta para la página de mensajes. Esta página mostrará los mensajes enviados por un usuario. Dentro del archivo "app.py", escribe el siguiente código para recuperar un mensaje de usuario específico del servidor Couchbase:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@aplicación.ruta('Inicio/guardado-mensajes', método=['GET','POST']) def consiga mensajes_guardados(): Mensajes_guardados = cliente.consiga(clave) Evento_guardado = json.cargas(mensajes_guardados) si solicitar.método == "POST": Evento_guardado.memo = solicitar.formulario["memo"] Evento_guardado.año = solicitar.formulario["año"] Evento_guardado.mes = solicitar.formulario["mes"] Evento_guardado.día = solicitar.formulario["día"] usuario_doc = json.vuelca(diario) cliente.configure(clave, usuario_doc) devolver redirigir(url_para(página_de_inicio)) devolver render_template("guardado.html", modelo=Evento_guardado) |
Dentro del directorio de su proyecto, cree un subdirectorio utilizando el comando mkdir como se muestra a continuación:
|
1 |
mkdir plantillas |
Dentro del directorio templates, crea los archivos home.html, savedmemo.html, y postmemo.html con el comando touch:
|
1 |
toque Inicio.html crear.html guardado.html |
Pegue el siguiente código dentro del archivo home.html:
|
1 2 3 4 5 6 7 8 9 |
<html> <cabeza> <título>Bienvenido a Diario Memo Reserve</título> </cabeza> <cuerpo> <h1> Recuerde Su Memorable Eventos</h1> <p>Bienvenido a el mundo de Frasco!</p> </cuerpo> </html> |
Pegue el siguiente código dentro del archivo memo.html:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<formulario acción="/home/crear-memo" método="post"> <div> <etiqueta para="nombre">Nombre:</etiqueta> <entrada tipo="texto" id="nombre" nombre="nombre" </div> <div> <etiqueta para="mes">Mes:</etiqueta> <entrada tipo="texto" id="mes" nombre="mes"> </div> <div> <etiqueta para="año">Año:</etiqueta> <entrada tipo="texto" id="año" nombre="año"> </div> <div> <etiqueta para="memo">Memo:</etiqueta> <textarea id="memo" nombre="memo"></textarea> </div> </formulario> <div clase="botón"> <botón tipo="enviar">Enviar su mensaje</botón> </div> |
Dentro del archivo savedmemo.html, pegue el siguiente código para generar un formulario que mostrará formularios con mensajes guardados:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<formulario acción="/Inicio/savedmemo" método="POST"> <div>Nombre: <entrada tipo="texto" nombre="nombre" valores="{{modelo.Nombre}}" /> </div> <div>Mes: <entrada tipo="texto" nombre="mes" valores="{{modelo.Mes}}" /> </div> <div>Año: <entrada tipo="texto" nombre="año" valores="{{modelo.Año}}" /> </div> <div>Memo: <entrada tipo="texto" nombre="memo" valores="{{modelo.Memo}}" /> </div> <div> <entrada tipo="oculto" nombre=" </formulario> |
Ejecute el siguiente comando para iniciar la aplicación basada en flask como se muestra a continuación:
|
1 |
python aplicación.py |
Abra su navegador y navegue hasta la siguiente url para visualizar la página donde puede enviar los detalles al servidor Couchbase:
http://localhost.com/home/create-memo

Además, si quieres navegar a la página donde se mostrarán los mensajes de los usuarios y pueden ser editados o modificados y guardados antes de enviarlos al Servidor Couchbase, utiliza lo siguiente:
http://localhost.com/home/saved-messages/:5000
Conclusión
En este tutorial, aprendimos a construir una aplicación simple de diario basada en Flask con Couchbase Server como backend. donde los usuarios pueden enviar datos a través de un formulario a un servidor Couchbase.
Puede descargar o clonar el proyecto completo desde GitHub si quieres probarlo.
Este artículo ha sido publicado por Couchbase Programa de escritura comunitaria