App Bookshelf de Python

La app de Bookshelf es una aplicación web de ejemplo escrita en Python que muestra cómo utilizar una variedad de productos de Google Cloud Platform (GCP), incluidos:

  • Entorno flexible de App Engine
  • Cloud SQL
  • Cloud Datastore
  • Cloud Storage
  • Cloud Pub/Sub

En este instructivo se explora la aplicación de Bookshelf en detalle y se analiza cómo se implementa cada característica de la aplicación con las tecnologías y los servicios conocidos que proporciona GCP.

La app Bookshelf se creó a partir del marco de trabajo de aplicaciones web Flask. La app de muestra usa Flask por ser simple y fácil de usar, pero los conceptos y las tecnologías que se exploran se pueden aplicar sin importar el marco de trabajo que uses. Puedes implementar esta app en otro marco de trabajo de aplicaciones web que elijas, por ejemplo, Django.

En todo el instructivo, el código sigue las recomendaciones y los patrones comunes para apps de Flask más grandes. En particular, la app usa planos y fábricas de aplicaciones. Si no conoces estos patrones, te recomendamos revisar la documentación de Flask.

Captura de pantalla de la app Bookshelf que muestra los controles y las portadas de los libros

La app Bookshelf de muestra almacena una colección de títulos de libros. Cualquier persona que tenga acceso a la app puede agregar libros a la lista. La app de muestra ofrece estas características:

  • Los usuarios pueden ver la lista de libros.
  • Los usuarios pueden agregar y quitar libros de la lista.
  • Los usuarios pueden editar los detalles de los libros.
  • Los usuarios pueden subir imágenes de portada de los libros.
  • Los usuarios pueden acceder con sus cuentas de Google y ver los libros que agregaron a la lista.

Objetivos

  • Clonar o descargar la app de muestra
  • Crear la app y ejecutarla en una máquina local
  • Implementar la app en App Engine
  • Examinar el código de muestra
  • Obtener información sobre cómo se almacenan datos estructurados en la app
  • Obtener información sobre cómo la app almacena datos binarios en Cloud Storage.
  • Obtener información sobre cómo la app autentica usuarios
  • Obtener información sobre cómo la app crea registros de eventos visibles en Google Cloud Platform Console.
  • Obtener información sobre cómo la app usa Cloud Pub/Sub para enviar tareas al trabajador en segundo plano.

Costos

En este instructivo se usan componentes facturables de GCP, incluido Compute Engine.

Este instructivo tiene varios pasos y cada uno se documenta en una página propia. En la última página se incluyen instrucciones para realizar la limpieza de los recursos, de manera que no se sigan facturando servicios de GCP en tu cuenta. Si decides no completar todos los pasos del instructivo, consulta las instrucciones de limpieza en la última página.

Antes de comenzar

  1. Usa GCP Console para configurar el proyecto de Google Cloud Platform:
    1. Crea un proyecto de GCP nuevo y una app de App Engine, y luego habilita la facturación en ese proyecto.
      Ir a App Engine

      Cuando se te pregunte, selecciona la región donde quieres que se ubique la app de App Engine y luego habilita la facturación. Después de crear el proyecto de GCP, se abrirá el Panel.

    2. Habilita las Cloud Datastore, Cloud Pub/Sub, Cloud Storage JSON, Stackdriver Logging y Google+ API necesarias.

      Habilita las API

  2. Descarga, instala y luego inicializa el SDK de Cloud.
    Descargar el SDK de Cloud
  3. Obtén credenciales locales para realizar la autenticación con servicios de GCP.
    gcloud auth application-default login
  4. Verifica que el proyecto predeterminado sea el correcto.
    gcloud config list
    Si el ID de proyecto que aparece en el resultado no corresponde al proyecto que quieres usar para este instructivo, configura el proyecto.
    gcloud config set project [YOUR_PROJECT_ID]
    en el que [YOUR_PROJECT_ID] es el ID del proyecto que creaste o elegiste usar para este instructivo.
  5. Clona el repositorio de muestra.

    git clone https://github.com/GoogleCloudPlatform/getting-started-python.git

    De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.

En este instructivo, se supone que sabes programar en Python y que tienes configurado un entorno de programación de Python. Si no tienes instalado Python, consulta Configurar un entorno de programación de Python. Incluso si ya tienes instalado Python, es útil revisar las instrucciones de configuración para asegurarte de que tienes las herramientas de Python más recientes.

Estructura del instructivo

El instructivo de Bookshelf tiene varias partes que indican cómo la app de muestra utiliza diversos servicios de GCP.

La sección de datos estructurados del instructivo muestra cómo la app de ejemplo almacena la información de los libros en una base de datos SQL o NoSQL.

La página web de la app muestra un formulario en el que el usuario puede ingresar el título, el autor, la descripción y la fecha de publicación de un libro. Para cada libro que se ingresa, la app almacena esta información en una base de datos, de manera que se pueda recuperar más tarde para verla o editarla. Para este paso del instructivo, debes elegir una de estas tres bases de datos: Cloud SQL, Cloud Datastore o MongoDB. Después de completar este paso con una de las bases de datos, puedes continuar con el paso siguiente.

La sección de Cloud Storage del instructivo explica cómo la app de muestra almacena datos binarios en Cloud Storage. En la página web de la app, el usuario puede especificar una imagen de portada para cada libro. La app almacena las imágenes de portada en un depósito de Cloud Storage.

La sección de autorización del instructivo demuestra cómo la app proporciona un flujo de acceso para el usuario. Cuando accede el usuario, los libros que ingresa se asocian con ese usuario en particular. Los usuarios registrados pueden ver sus propios libros y los que crearon usuarios anónimos. Otros usuarios no pueden ver los libros creados por un usuario registrado.

La sección de registro del instructivo demuestra cómo la app escribe registros que se pueden ver en Google Cloud Platform Console. Los registros de este tipo pueden proporcionar información de diagnóstico durante el desarrollo de la app.

La sección de Pub/Sub del instructivo muestra cómo la app usa Cloud Pub/Sub para enviar tareas a un trabajador en segundo plano. El trabajador recibe información desde la API de Google Libros y actualiza la información de los libros en la base de datos.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...