Checkpoints
Create an App Engine application
/ 50
Create a Cloud Datastore entity
/ 50
Uygulama Geliştirme: Cloud Datastore'da Uygulama Verilerini Depolama - Python
GSP184
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).
- Laboratuvarı tamamlamak için yeterli süre. (Laboratuvarlar, başlatıldıktan sonra duraklatılamaz)
Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma
-
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
-
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. -
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.
-
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. -
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.
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.
- Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir 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:
gcloud
, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.
- (İsteğe bağlı) Etkin hesap adını şu komutla listeleyebilirsiniz:
-
Yetkilendir'i tıklayın.
-
Çıkışınız aşağıdaki gibi görünecektir:
Çıkış:
- (İsteğe bağlı) Proje kimliğini şu komutla listeleyebilirsiniz:
Çıkış:
Örnek çıkış:
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.
1. görev: Sanal ortam oluşturma
- Terminali aç simgesini tıklayın.
Paket yüklemeyi sistemden ayrı tutmak için Python sanal ortamları kullanılır.
- Sanal ortamı etkinleştirin:
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:
Test uygulamasını yapılandırma ve çalıştırma
-
Çalışma dizinini değiştirin:
cd ~/training-data-analyst/courses/developingapps/python/datastore/start -
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. -
Uygulama bağımlılıklarını yükleyin ve uyumsuzlukla ilgili uyarıları yoksayın:
pip install -r requirements.txt -
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
-
Cloud Shell'de Web önizlemesi > 8080 bağlantı noktasında önizle'yi tıklayarak test uygulamasını önizleyin.
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)
-
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. -
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.
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. -
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
- Düzenleyicinin sol tarafındaki dosya tarayıcısı panelini kullanarak
/training-data-analyst/courses/developingapps/python/datastore/start
klasörüne gidin.
-
...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.
-
...quiz/init.py
dosyasını seçin.Bu dosya, web uygulaması ve REST API rotalarını içe aktarır.
-
...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.
-
...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.
-
...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.
-
...quiz/api/api.py
dosyasını seçin.Bu dosya, teste katılan öğrencilere JSON verilerini gönderen işleyiciyi içerir.
-
...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.
# 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
-
Cloud Shell'e dönün ve Ctrl+C tuşlarına basarak uygulamayı durdurun.
-
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:
Laboratuvardaki ilerleme durumunuzu kontrol etmek için aşağıda İlerleme durumumu kontrol et'i tıklayın.
Python Datastore modülünü içe aktarma ve kullanma
-
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: -
os
modülünü içe aktarma -
os modülünü kullanarak
GCLOUD_PROJECT
ortam değişkenini alma -
google.cloud
paketindendatastore
modülünü içe aktarma -
datastore_client
adlı birdatastore.Client
istemci nesnesi tanımlama
Güncel datastore.py
Kod yazarak Cloud Datastore varlığı oluşturma
-
...quiz/gcp/datastore.py
dizinindensave_question()
işlevine gidip mevcutpass
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
-
datastore.py
dosyasını kaydedin.
Uygulamayı çalıştırma ve Cloud Datastore varlığı oluşturma
-
...quiz/gcp/datastore.py
dosyasını kaydedip Cloud Shell komut istemine dönün. - Uygulamayı çalıştırmak için aşağıdaki komutu yürütün:
- Cloud Shell'de Web preview (Web önizlemesi) > Preview on port 8080'i (8080 bağlantı noktasında önizle) tıklayarak test uygulamasını önizleyin.
- Create Question'ı (Soru Oluştur) tıklayın.
- Aşağıdaki değerleri girerek formu doldurup Save'i (Kaydet) tıklayın.
Form Alanı |
Değer |
Author (Yazar) |
|
Test |
|
Başlık |
|
Yanıt 1 |
|
Yanıt 2 |
|
Yanıt 3 |
|
Yanıt 4 |
|
Uygulama ana sayfasına döneceksiniz.
- Konsola dönüp Gezinme menüsü > Datastore'u tıklayın.
- 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ı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
- Kod düzenleyicide
...quiz/gcp/datastore.py
dosyasındanlist_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
- Aşağıdaki kodu kaldırın:
Kaldırdığınız kodun yerine aşağıdakini ekleyin:
-
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.
- Cloud Shell'de Ctrl+C tuşlarına basarak uygulamayı durdurun, ardından aşağıdaki kodla yeniden başlatın:
-
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.
-
Take Test (Teste Katıl) > GCP'yi tıklayın.
Oluşturduğunuz soruları göreceksiniz.
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
-
Datastore hakkında daha fazla bilgi için Google Cloud Datastore Belgelerine bakın.
-
Google Cloud'da Python hakkında daha fazla bilgi edinin.
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.