Almacenar y recuperar datos

ID de región

El REGION_ID es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.

Más información sobre los IDs de región

Actualiza tu servicio web para que se conecte a los datos y los gestione a través de Firestore en modo Datastore (Datastore). Usa las bibliotecas de cliente de Datastore para conectar tu servicio web a Datastore, una base de datos no relacional (NoSQL) creada para el escalado automático, el alto rendimiento y la facilidad de desarrollo de aplicaciones.

En este paso, actualizará su servicio web para que almacene los datos de las solicitudes de páginas en Datastore y, a continuación, muestre una lista de las diez últimas solicitudes de páginas. El objetivo es que el almacenamiento de datos funcione en su servicio web antes de añadir Firebase Authentication y personalizar el almacenamiento de datos para los usuarios autenticados.

Antes de empezar

Si has completado todos los pasos anteriores de esta guía, puedes saltarte esta sección. De lo contrario, realice una de las siguientes acciones:

  • Empieza por Crear una aplicación Python 3 y sigue todos los pasos hasta llegar a este.

  • Si ya tienes un Google Cloud proyecto, puedes continuar descargando una copia del servicio web:

    1. Descarga el repositorio de la aplicación de muestra con Git:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      También puedes descargar el ejemplo como un archivo ZIP y, a continuación, extraerlo.

    2. Ve al directorio que contiene una copia de los archivos del paso anterior:

      cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-1
      
    3. Habilita la API Datastore:

      gcloud services enable datastore.googleapis.com
      

Almacenar y recuperar entidades de Datastore

Almacena y recupera los tiempos de solicitud de sitios como entidades de Datastore haciendo lo siguiente:

  1. Añade el siguiente código al archivo main.py:

    from google.cloud import datastore
    
    datastore_client = datastore.Client()
    
    def store_time(dt):
        entity = datastore.Entity(key=datastore_client.key("visit"))
        entity.update({"timestamp": dt})
    
        datastore_client.put(entity)
    
    
    def fetch_times(limit):
        query = datastore_client.query(kind="visit")
        query.order = ["-timestamp"]
    
        times = query.fetch(limit=limit)
    
        return times
    
    

    El método store_time anterior usa las bibliotecas de cliente de Datastore para crear una entidad en Datastore. Las entidades de Datastore son objetos de datos que constan de claves y propiedades. En este caso, la clave de la entidad es su tipo personalizado, visit. La entidad también tiene una propiedad, timestamp, que contiene la hora de una solicitud de página.

    El método fetch_times usa la clave visit para consultar en la base de datos las diez entidades visit más recientes y, a continuación, almacena esas entidades en una lista en orden descendente.

  2. Modifica tu método root para llamar a los nuevos métodos:

    @app.route("/")
    def root():
        # Store the current access time in Datastore.
        store_time(datetime.datetime.now(tz=datetime.timezone.utc))
    
        # Fetch the most recent 10 access times from Datastore.
        times = fetch_times(10)
    
        return render_template("index.html", times=times)
    
    
  3. Actualiza el archivo templates/index.html para imprimir el timestamp de cada entidad:

    <h2>Last 10 visits</h2>
    {% for time in times %}
      <p>{{ time['timestamp'] }}</p>
    {% endfor %}
  4. Asegúrate de que tu archivo requirements.txt incluya todas las dependencias necesarias:

    Flask==3.0.0
    google-cloud-datastore==2.15.1
    

Para obtener más información sobre las entidades, las propiedades y las claves de Datastore, consulta Entidades, propiedades y claves. Para obtener más información sobre el uso de las bibliotecas de cliente de Datastore, consulta Bibliotecas de cliente de Datastore.

Probar un servicio web

Prueba tu servicio web ejecutándolo de forma local en un entorno virtual:

  1. Ejecuta los siguientes comandos en el directorio principal de tu proyecto para instalar nuevas dependencias y ejecutar tu servicio web. Si no has configurado un entorno virtual para las pruebas locales, consulta el artículo sobre cómo probar tu servicio web.

    pip install -r requirements.txt
    python main.py
    
  2. Introduce la siguiente dirección en tu navegador web para ver tu servicio web:

    http://localhost:8080
    

Puedes ver las entidades que crea tu servicio web en la consolaGoogle Cloud :

Ir a la página Entidades de Datastore

Desplegar un servicio web

Ahora que Datastore funciona de forma local, puedes volver a desplegar tu servicio web en App Engine.

Ejecuta el siguiente comando desde el directorio raíz de tu proyecto, donde se encuentra el archivo app.yaml:

gcloud app deploy

Todo el tráfico se dirige automáticamente a la nueva versión que has implementado.

Para obtener más información sobre cómo gestionar versiones, consulta el artículo Gestionar servicios y versiones.

Ver tu servicio

Para iniciar rápidamente tu navegador y acceder a tu servicio web en https://PROJECT_ID.REGION_ID.r.appspot.com, ejecuta el siguiente comando:

gcloud app browse

Pasos siguientes

Ahora que Datastore funciona con tu servicio web, puedes añadir Firebase a tu servicio web.