arrow_back

Uygulama Geliştirme: Cloud Datastore'da Uygulama Verilerini Depolama - Python

Join Sign in
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Uygulama Geliştirme: Cloud Datastore'da Uygulama Verilerini Depolama - Python

Lab 50 minutes universal_currency_alt 5 Credits show_chart Intermediate
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP184

Google Cloud Rehbersiz Laboratuvarları

Genel Bakış

Google Cloud Datastore; otomatik ölçeklendirme, yüksek performans ve uygulama geliştirme kolaylığı için oluşturulmuş NoSQL belge veritabanıdır. Bu laboratuvarda, online bir test uygulamasında uygulama verilerini depolamak için Datastore'u kullanacaksınız. Ayrıca uygulamayı, Datastore'dan verileri alıp testte görüntüleyecek şekilde yapılandıracaksınız.

Test uygulamasının iskeleti zaten yazılmıştır. Google Cloud Shell kullanarak iskeleti içeren depoyu klonlayacak, Cloud Shell düzenleyicisinden yararlanarak kodu gözden geçirecek ve Cloud Shell web önizleme özelliğiyle kodu görüntüleyeceksiniz. Ardından, verileri depolayan kodu Cloud Datastore kullanacak şekilde değiştireceksiniz.

Hedefler

Bu laboratuvarda, aşağıdaki görevleri nasıl gerçekleştireceğinizi öğreneceksiniz:

  • Cloud Shell'i geliştirme ortamınız olarak kullanma
  • Uygulamayı önizleme
  • Uygulama kodunu Cloud Datastore'u entegre edecek şekilde güncelleme

Kurulum ve şartlar

Laboratuvarı Başlat düğmesini tıklamadan önce

Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Laboratuvarı Başlat'ı tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.

Bu uygulamalı laboratuvarı kullanarak, laboratuvar etkinliklerini gerçek bir bulut ortamında (Simülasyon veya demo ortamında değil.) gerçekleştirebilirsiniz. Bu olanağın sunulabilmesi için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişmek için kullanırsınız.

Bu laboratuvarı tamamlamak için şunlar gerekir:

  • Standart bir internet tarayıcısına erişim (Chrome Tarayıcı önerilir).
Not: Bu laboratuvarı çalıştırmak için tarayıcıyı gizli pencerede açın. Aksi takdirde, kişisel hesabınızla öğrenci hesabınız arasında oluşabilecek çakışmalar nedeniyle kişisel hesabınızdan ek ücret alınabilir.
  • Laboratuvarı tamamlamak için yeterli süre. (Laboratuvarlar, başlatıldıktan sonra duraklatılamaz)
Not: Kişisel bir Google Cloud hesabınız veya projeniz varsa bu laboratuvarda kullanmayın. Aksi takdirde hesabınızdan ek ücret alınabilir.

Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma

  1. Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir pop-up açılır. Soldaki Laboratuvar Ayrıntıları panelinde şunlar yer alır:

    • Google Console'u Aç düğmesi
    • Kalan süre
    • Bu laboratuvarda kullanmanız gereken geçici kimlik bilgileri
    • Bu laboratuvarda ilerlemek için gerekebilecek diğer bilgiler
  2. Google Console'u Aç'ı tıklayın. Laboratuvar, kaynakları çalıştırır ve sonra Oturum aç sayfasını gösteren başka bir sekme açar.

    İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.

    Not: Hesap seçin iletişim kutusunu görürseniz Başka Bir Hesap Kullan'ı tıklayın.
  3. Gerekirse Laboratuvar Ayrıntıları panelinden Kullanıcı adı'nı kopyalayın ve Oturum aç iletişim kutusuna yapıştırın. Sonraki'ni tıklayın.

  4. Laboratuvar Ayrıntıları panelinden Şifre'yi kopyalayın ve Hoş geldiniz iletişim penceresine yapıştırın. Sonraki'ni tıklayın.

    Önemli: Sol paneldeki kimlik bilgilerini kullanmanız gerekir. Google Cloud Öğrenim Merkezi kimlik bilgilerinizi kullanmayın. Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir.
  5. Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:

    • Şartları ve koşulları kabul edin.
    • Geçici bir hesap kullandığınızdan kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin.
    • Ücretsiz denemelere kaydolmayın.

Birkaç saniye sonra Cloud Console bu sekmede açılır.

Not: Soldaki Gezinme menüsü'nü tıklayarak Google Cloud ürün ve hizmetlerinin listelendiği menüyü görüntüleyebilirsiniz. Gezinme menüsü simgesi

Cloud Shell'i etkinleştirme

Cloud Shell, çok sayıda geliştirme aracı içeren bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.

  1. Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir Cloud Shell'i etkinleştir simgesi simgesini tıklayın.

Bağlandığınızda, kimliğiniz doğrulanmış olur. Proje ise PROJECT_ID'nize göre ayarlanmıştır. Çıkış, bu oturum için PROJECT_ID'yi tanımlayan bir satır içerir:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.

  1. (İsteğe bağlı) Etkin hesap adını şu komutla listeleyebilirsiniz:
gcloud auth list
  1. Yetkilendir'i tıklayın.

  2. Çıkışınız aşağıdaki gibi görünecektir:

Çıkış:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (İsteğe bağlı) Proje kimliğini şu komutla listeleyebilirsiniz:
gcloud config list project

Çıkış:

[core] project = <project_ID>

Örnek çıkış:

[core] project = qwiklabs-gcp-44776a13dea667a6 Not: gcloud ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'ya genel bakış rehberinde bulabilirsiniz.

Cloud Shell kod düzenleyiciyi başlatma

  • Cloud Shell'den kod düzenleyiciyi başlatmak için Düzenleyiciyi aç simgesini tıklayın. Yeni pencerede aç'ı tıklamanız gerekebilir.

Düzenleyiciyi aç düğmesi.

Not: Kod düzenleyici, tarayıcınızın ayrı bir sekmesinde başlatılır.

1. görev: Sanal ortam oluşturma

  1. Terminali aç simgesini tıklayın.

Paket yüklemeyi sistemden ayrı tutmak için Python sanal ortamları kullanılır.

virtualenv -p python3 vrenv
  1. Sanal ortamı etkinleştirin:
source vrenv/bin/activate

2. görev: Test uygulamasını hazırlama

Test uygulamasını içeren depo, GitHub.com konumunda bulunmaktadır. Bu bölümde, depoyu klonlayıp uygulamayı çalıştıran komutları girmek için Cloud Shell'i kullanacaksınız.

Cloud Shell'de kaynak kodunu klonlama

  • Sınıfa ait depoyu klonlayın:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Test uygulamasını yapılandırma ve çalıştırma

  1. Çalışma dizinini değiştirin:

    cd ~/training-data-analyst/courses/developingapps/python/datastore/start
  2. Proje kimliğini referans alan GCLOUD_PROJECT ortam değişkenini dışa aktarın:

    export GCLOUD_PROJECT=$DEVSHELL_PROJECT_ID Not: Cloud Shell'de Proje Kimliği

    Cloud Shell'de çalışırken proje kimliğine "$DEVSHELL_PROJECT_ID" ortam değişkeniyle erişebilirsiniz.
  3. Uygulama bağımlılıklarını yükleyin ve uyumsuzlukla ilgili uyarıları yoksayın:

    pip install -r requirements.txt
  4. Uygulamayı çalıştırın:

    python run_server.py

    Aşağıdakine benzer bir mesaj gördüğünüzde, uygulama çalışmaya başlamış demektir:

    * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 179-313-240

Test uygulamasını inceleme

  1. Cloud Shell'de Web önizlemesi > 8080 bağlantı noktasında önizle'yi tıklayarak test uygulamasını önizleyin.

    Web önizleme menüsünde &quot;8080 bağlantı noktasında önizle&quot; seçeneği vurgulanıyor.

    Web uygulamasının kullanıcı arayüzünü görürsünüz. Uygulamanın üç temel bölümü şunlardır:

    • Create Question (Soru Oluşturma)
    • Take Test (Teste Katılma)
    • Leaderboard (Puan Tablosu)

    &quot;Welcome to the Quite Interesting Quiz&quot; (Oldukça İlginç Test&#39;e hoş geldiniz) sayfası üç bölümden oluşur: &quot;Create Question&quot; (Soru Oluşturma), &quot;Take Test&quot; (Teste Katılma) ve &quot;Leaderboard&quot; (Puan Tablosu).

  2. Gezinme çubuğunda Create Question'ı (Soru Oluştur) tıklayın.

    Doğru yanıtı seçebileceğiniz radyo düğmelerinin yanı sıra soru ve yanıtlara ait metin kutuları içeren basit bir form göreceksiniz.

    Not: Testi oluşturan kullanıcılar, uygulamanın bu bölümünde soru ekleyebilir. Uygulamanın bu bölümü, yaygın Python web uygulama çerçevesi Flask kullanılarak sunucu tarafı web uygulaması olarak yazılmıştır.
  3. Gezinme çubuğunda Take Test'i (Teste Katıl), ardından Google Cloud sorularına erişmek için GCP'yi tıklayın.

    Örnek bir soru göreceksiniz.

    Örnek soru şablonuyla birlikte örnek yanıtlar ve &quot;Submit Answer&quot; (Yanıtı gönder) düğmesi.

    Teste katılan kullanıcılar, uygulamanın bu bölümünde soruları yanıtlar.

    Not: Uygulamanın bu bölümü, istemci taraflı web uygulaması olarak yazılmıştır.
  4. Sunucu tarafı uygulamaya dönmek için gezinme çubuğundaki Quite Interesting Quiz (Oldukça İlginç Test) bağlantısını tıklayın.

3. görev: Test uygulaması kodunu inceleme

Bu laboratuvarda, dosyaları görüntüleyip düzenleyeceksiniz. Cloud Shell'e yüklü olan nano veya vim gibi kabuk düzenleyicilerini ya da Cloud Shell kod düzenleyiciyi kullanabilirsiniz.

Bu laboratuvarda, testin uygulama kodunu incelemek için Cloud Shell kod düzenleyici kullanılır.

Flask Web uygulamasını inceleme

  1. Düzenleyicinin sol tarafındaki dosya tarayıcısı panelini kullanarak /training-data-analyst/courses/developingapps/python/datastore/start klasörüne gidin.
Not: Yollar, bu klasöre göre belirlenir. Bu uygulama, yaygın Flask uygulama çerçevesi kullanılarak yazılmış standart bir Python uygulamasıdır.
  1. ...run-server.py dosyasını seçin.

    Bu dosya, uygulamanın giriş noktasını içerir ve 8080 numaralı bağlantı noktasında uygulamayı çalıştırır.

  2. ...quiz/init.py dosyasını seçin.

    Bu dosya, web uygulaması ve REST API rotalarını içe aktarır.

  3. ...quiz/webapp/questions.py ve ...quiz/webapp/routes.py dosyalarını seçin.

    Bu dosyalarda bulunan rotalar, formu görüntüleyen ve testi oluşturmuş kullanıcıların web uygulamasına gönderdiği form verilerini toplayan işleyicileri URI'lerle eşler.

  4. ...quiz/webapp/templates dosyasını seçin.

    Bu klasör, Jinja2 şablonlarından yararlanan web uygulaması kullanıcı arayüzü için şablonlar içerir.

  5. ...quiz/webapp/templates/add.html dosyasını görüntüleyin.

    Bu dosya, "Create Question" (Soru Oluştur) formu için Jinja2 şablonunu içerir.

    Test seçmeniz için sunulan listeyi, testi oluşturan kullanıcının soru ile yanıtları girebileceği metin kutularını ve doğru yanıtı işaretleyebileceğiniz radyo düğmelerini görebilirsiniz.

  6. ...quiz/api/api.py dosyasını seçin.

    Bu dosya, teste katılan öğrencilere JSON verilerini gönderen işleyiciyi içerir.

  7. ...quiz/gcp/datastore.py dosyasını seçin.

    Bu, test sorularını Cloud Datastore'a kaydedip buradan veya buraya yüklemek için Datastore kodunu yazdığınız dosyadır.

Bu modülü, web uygulamasına ve API'ye aktaracaksınız.

4. görev: Cloud Datastore'a varlık ekleme

Bu bölümde, form verilerini Cloud Datastore'a kaydetmek için kod yazacaksınız.

Not: Şu şekilde işaretlenmiş bölümlerde kodu güncelleyin:

# TODO

# END TODO

Öğrenme sürecinden en iyi şekilde yararlanmak için, bu bölümün sonundaki tamamlanmış kod bloğuna bakmadan kodu yazmaya çalışın. Ayrıca kodu, satır içi yorumları ve Cloud Datastore için ilgili Datastore İstemci API'si belgelerini inceleyin.

Cloud Datastore'u sağlamak için App Engine uygulaması oluşturma

  1. Cloud Shell'e dönün ve Ctrl+C tuşlarına basarak uygulamayı durdurun.

  2. Projenizde App Engine uygulaması oluşturmak için aşağıdaki komutu girin:

    gcloud app create --region "{{{project_0.startup_script.app_region | REGION }}}"

App Engine oluşturulduğunda aşağıdaki mesajı görürsünüz:

Creating App Engine application in project [qwiklabs-gcp-f67238775c00cfaa] and region {{{project_0.startup_script.app_region | REGION}}}....done. Success! The app is now created. Please use `gcloud app deploy` to deploy your first app. Not: App Engine'i henüz web uygulamanız için kullanmadığınızı hatırlatmak isteriz. Ancak Cloud Datastore'u kullanabilmek için projenizde App Engine uygulaması oluşturmanız gerekir.

Laboratuvardaki ilerleme durumunuzu kontrol etmek için aşağıda İlerleme durumumu kontrol et'i tıklayın.

App Engine uygulaması oluşturma

Python Datastore modülünü içe aktarma ve kullanma

  1. Cloud Shell düzenleyicide ...quiz/gcp/datastore.py dosyasını açın ve aşağıdaki işlemleri gerçekleştirmek için alt kısımdaki Güncel datastore.pykodunu ekleyin:

  2. os modülünü içe aktarma

  3. os modülünü kullanarak GCLOUD_PROJECT ortam değişkenini alma

  4. google.cloud paketinden datastore modülünü içe aktarma

  5. datastore_client adlı bir datastore.Client istemci nesnesi tanımlama

Güncel datastore.py

# TODO: Import the os module import os # END TODO # TODO: Get the GCLOUD_PROJECT environment variable project_id = os.getenv('GCLOUD_PROJECT') # END TODO from flask import current_app # TODO: Import the datastore module from the google.cloud package from google.cloud import datastore # END TODO # TODO: Create a Cloud Datastore client object # The datastore client object requires the Project ID. # Pass through the Project ID you looked up from the # environment variable earlier datastore_client = datastore.Client(project_id) # END TODO

Kod yazarak Cloud Datastore varlığı oluşturma

  1. ...quiz/gcp/datastore.py dizininden save_question() işlevine gidip mevcut pass yer tutucu ifadesini kaldırın. Aşağıdaki işlemleri gerçekleştirmek için alt kısımdaki datastore.py - save_question() işlev kodunu ekleyin:
  • 'Question' türünde bir Datastore varlığı için anahtar oluşturmak amacıyla Datastore istemci nesnesini kullanma
  • Anahtara sahip bir Datastore soru varlığı oluşturmak için Datastore'u kullanma
  • Web uygulamasına ait formdan alınan değerler sözlüğündeki öğeleri yineleme
  • Döngünün gövdesinde her bir anahtar ve değeri Datastore varlık nesnesine atama
  • Verileri kaydetmek için Datastore istemcisini kullanma

datastore.py - save_question() işlevi

""" Create and persist and entity for each question The Datastore key is the equivalent of a primary key in a relational database. There are two main ways of writing a key: 1. Specify the kind, and let Datastore generate a unique numeric id 2. Specify the kind and a unique string id """ def save_question(question): # TODO: Create a key for a Datastore entity # whose kind is Question key = datastore_client.key('Question') # END TODO # TODO: Create a Datastore entity object using the key q_entity = datastore.Entity(key=key) # END TODO # TODO: Iterate over the form values supplied to the function for q_prop, q_val in question.items(): # END TODO # TODO: Assign each key and value to the Datastore entity q_entity[q_prop] = q_val # END TODO # TODO: Save the entity datastore_client.put(q_entity) # END TODO
  1. datastore.py dosyasını kaydedin.

Uygulamayı çalıştırma ve Cloud Datastore varlığı oluşturma

  1. ...quiz/gcp/datastore.py dosyasını kaydedip Cloud Shell komut istemine dönün.
  2. Uygulamayı çalıştırmak için aşağıdaki komutu yürütün:
python run_server.py
  1. Cloud Shell'de Web preview (Web önizlemesi) > Preview on port 8080'i (8080 bağlantı noktasında önizle) tıklayarak test uygulamasını önizleyin.
  2. Create Question'ı (Soru Oluştur) tıklayın.
  3. Aşağıdaki değerleri girerek formu doldurup Save'i (Kaydet) tıklayın.

Form Alanı

Değer

Author (Yazar)

Buraya adınızı girin.

Test

Google Cloud Platform

Başlık

Which company owns Google Cloud? (Google Cloud hangi şirkete aittir?)

Yanıt 1

Amazon

Yanıt 2

Google (Yanıt 2'nin radyo düğmesini seçin.)

Yanıt 3

IBM

Yanıt 4

Microsoft

Uygulama ana sayfasına döneceksiniz.

  1. Konsola dönüp Gezinme menüsü > Datastore'u tıklayın.
  2. Varsayılan veritabanını seçip Entities'i (Varlıklar) tıklayın.

Az önce eklediğiniz soruyu göreceksiniz.

Laboratuvardaki ilerleme durumunuzu kontrol etmek için aşağıda İlerleme durumumu kontrol et'i tıklayın.

Cloud Datastore varlığı oluşturma

Cloud Datastore varlıklarını alma

Bu bölümde, sorunuzu uygulamada görüntülemek için Cloud Datastore'dan varlık verilerini almak amacıyla kod yazacaksınız.

Cloud Datastore varlıklarını almak için kod yazma

  1. Kod düzenleyicide ...quiz/gcp/datastore.py dosyasından list_entities(quiz, redact) işlevine ait kodu aşağıdaki işlemleri yapan bir sorguyla değiştirin:
  • Cloud Datastore'dan belirli bir teste ait "Question" varlıklarını alma
  • Sorguyu getirmek için Datastore istemcisini kullanıp döndürülen verilerden yararlanarak bir liste oluşturma
  • Öğe listesini numaralandırma ve her varlığa ait Anahtar tanımlayıcıyı üst düzey bir özelliğe yükseltme
  • Sonuçları döndürme
  1. Aşağıdaki kodu kaldırın:
""" Returns a list of question entities for a given quiz - filter by quiz name, defaulting to gcp - no paging - add in the entity key as the id property - if redact is true, remove the correctAnswer property from each entity """ def list_entities(quiz='gcp', redact=True): return [{'quiz':'gcp', 'title':'Sample question', 'answer1': 'A', 'answer2': 'B', 'answer3': 'C', 'answer4': 'D', 'correctAnswer': 1, 'author': 'Nigel'}] """

Kaldırdığınız kodun yerine aşağıdakini ekleyin:

""" Returns a list of question entities for a given quiz - filter by quiz name, defaulting to gcp - no paging - add in the entity key as the id property - if redact is true, remove the correctAnswer property from each entity """ def list_entities(quiz='gcp', redact=True): query = datastore_client.query(kind='Question') query.add_filter('quiz', '=', quiz) results =list(query.fetch()) for result in results: result['id'] = result.key.id if redact: for result in results: del result['correctAnswer'] return results """
  1. datastore.py dosyasını kaydedin.

Uygulamayı çalıştırma ve Cloud Datastore sorgusunu test etme

Artık sorunuzun Datastore'dan alınıp alınmadığını ve test uygulamanıza yüklenip yüklenmediğini sınayabilirsiniz.

  1. Cloud Shell'de Ctrl+C tuşlarına basarak uygulamayı durdurun, ardından aşağıdaki kodla yeniden başlatın:
python run_server.py
  1. Testi önizleme: Testin çalıştırıldığı tarayıcı açıksa tarayıcıyı yeniden yükleyin. Söz konusu tarayıcı açık değilse Web preview (Web önizlemesi) > Preview on port 8080'i (8080 bağlantı noktasında önizle) tıklayın.

  2. Take Test (Teste Katıl) > GCP'yi tıklayın.

Oluşturduğunuz soruları göreceksiniz.

Test sorusuyla birlikte olası yanıtların listesi ve &quot;Submit Answer&quot; (Yanıtı gönder) düğmesi.

Tebrikler!

Uygulama Geliştirme: Cloud Datastore'da Uygulama Verilerini Depolama - Python adlı yönlendirmesiz öğrenim laboratuvarının sonuna geldiniz. Online bir test uygulamasının uygulama verilerini depolamak için Datastore'u kullandınız. Ayrıca uygulamayı, verileri alıp testte görüntüleyecek şekilde yapılandırdınız.

Görevinizi tamamlama

Bu yönlendirmesiz öğrenim laboratuvarı, Uygulama Geliştirme - Python görevinin bir parçasıdır. Görevler, bir öğrenme rotasını oluşturan birbiriyle bağlantılı laboratuvar dizilerini ifade eder. Bir görevi tamamladığınızda başarınızın ödülü olarak rozet kazanırsınız. Rozetlerinizi herkese açık hâle getirebilir ve rozetin bağlantısını online özgeçmişinizde veya sosyal medya hesabınızda paylaşabilirsiniz. Bu göreve veya bu laboratuvarı içeren herhangi bir göreve kaydolun ve tamamlama kredisini anında kazanın. Tüm mevcut görevleri görmek için Google Cloud Öğrenim Merkezi kataloğuna bakın.

Sonraki adımlar / Daha fazla bilgi

Kılavuzun son güncellenme tarihi: 16 Ekim 2023

Laboratuvarın son test edilme tarihi: 18 Ekim 2023

Telif Hakkı 2024 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.