Menyimpan dan Mengambil Data

ID wilayah

REGION_ID adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.

Pelajari ID region lebih lanjut.

Update layanan web Anda untuk terhubung ke dan menangani data melalui Firestore dalam mode Datastore (Datastore). GunakanLibrary klien Datastore untuk menghubungkan layanan web Anda ke Datastore, database non-relasional (NoSQL) yang dibuat untuk penskalaan otomatis, performa tinggi, dan kemudahan pengembangan aplikasi.

Pada langkah ini, Anda akan memperbarui layanan web agar menyimpan data permintaan halaman di Datastore, lalu menampilkan daftar sepuluh permintaan halaman terakhir. Di sini, tujuannya adalah mendapatkan penyimpanan data yang berfungsi untuk layanan web sebelum Anda menambahkan Firebase Authentication dan mempersonalisasi penyimpanan data untuk pengguna terautentikasi.

Sebelum memulai

Jika Anda telah menyelesaikan semua langkah sebelumnya dalam panduan ini, lewati bagian ini. Jika tidak, selesaikan salah satu langkah berikut:

  • Mulai dari Membuat Aplikasi Python 3 dan selesaikan semua langkah menuju langkah ini.

  • Jika sudah memiliki project Google Cloud, Anda dapat melanjutkan dengan mendownload salinan layanan web:

    1. Download repositori aplikasi contoh menggunakan Git:

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

      Atau, Anda dapat mendownload sampel sebagai file zip, lalu mengekstraknya.

    2. Buka direktori yang berisi salinan file dari langkah sebelumnya:

      cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-1
      

Menyimpan dan mengambil entity Datastore

Simpan dan ambil waktu permintaan situs sebagai entity Datastore dengan menyelesaikan hal-hal berikut:

  1. Tambahkan kode berikut ke file main.py Anda:

    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
    
    

    Metode store_time di atas menggunakan library klien Datastore untuk membuat entity baru di Datastore. Entity Datastore adalah objek data yang terdiri dari kunci dan properti. Dalam hal ini, kunci entity adalah jenis kustomnya, visit. Entity juga memiliki satu properti, timestamp, yang berisi waktu permintaan halaman.

    Metode fetch_times menggunakan kunci visit untuk membuat kueri database tentang sepuluh entity visit terbaru, lalu menyimpan entity tersebut dalam daftar dalam urutan menurun.

  2. Perbarui metode root untuk memanggil metode baru Anda:

    @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. Update file templates/index.html Anda untuk mencetak timestamp setiap entitas:

    <h2>Last 10 visits</h2>
    {% for time in times %}
      <p>{{ time['timestamp'] }}</p>
    {% endfor %}
  4. Pastikan bahwa file requirements.txt Anda menyertakan semua dependensi yang diperlukan:

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

Untuk mengetahui informasi lebih lanjut tentang entity, properti, dan kunci Datastore, baca Entity, Properti, dan Kunci. Untuk informasi lebih lanjut tentang penggunaan library klien Datastore, lihat Library Klien Datastore.

Menguji layanan web

Uji layanan web Anda dengan menjalankannya secara lokal di lingkungan virtual:

  1. Jalankan perintah berikut di direktori utama project Anda untuk menginstal dependensi baru dan menjalankan layanan web Anda. Jika Anda belum menyiapkan lingkungan virtual untuk pengujian lokal, baca menguji layanan web Anda.

    pip install -r requirements.txt
    python main.py
    
  2. Masukkan alamat berikut di browser web untuk melihat layanan web Anda:

    http://localhost:8080
    

Anda dapat melihat entity yang dibuat oleh layanan web di konsol Google Cloud:

Buka halaman entity Datastore

Men-deploy layanan web Anda

Setelah Datastore berfungsi secara lokal, Anda dapat men-deploy ulang layanan web ke App Engine.

Jalankan perintah berikut dari direktori utama project, tempat file app.yaml Anda berada:

gcloud app deploy

Semua traffic akan otomatis dirutekan ke versi baru yang Anda deploy.

Untuk mengetahui informasi selengkapnya tentang mengelola versi, lihat Mengelola Layanan dan Versi.

Melihat layanan Anda

Untuk meluncurkan browser dan mengakses layanan web dengan cepat di https://PROJECT_ID.REGION_ID.r.appspot.com, jalankan perintah berikut:

gcloud app browse

Langkah Berikutnya

Setelah Datastore berfungsi dengan layanan web, Anda siap mempelajari cara menambahkan Firebase ke layanan web.