Punkty kontrolne
Create an App Engine application
/ 50
Create a Cloud Datastore entity
/ 50
Tworzenie aplikacji: przechowywanie danych aplikacji w Cloud Datastore – Python
GSP184
Opis
Google Cloud Datastore to magazyn danych dokumentów NoSQL zaprojektowany pod kątem automatycznego skalowania, wysokiej wydajności i łatwego tworzenia aplikacji. W tym module skorzystasz z magazynu danych Datastore do przechowania danych internetowej aplikacji quizu. Skonfigurujesz też aplikację, aby pobierała dane z Datastore i wyświetlała je w quizie.
Szkielet aplikacji quizu został już napisany. Sklonujesz repozytorium zawierające ten szkielet przy użyciu Google Cloud Shell, sprawdzisz kod w edytorze Cloud Shell i wyświetlisz go za pomocą funkcji podglądu w przeglądarce. Następnie zmodyfikujesz kod, aby dane były przechowywane w Cloud Datastore.
Cele
W tym module:
- poznasz środowisko programistyczne Cloud Shell;
- wyświetlisz podgląd aplikacji;
- zaktualizujesz kod aplikacji, aby zintegrować ją z Cloud Datastore.
Konfiguracja i wymagania
Zanim klikniesz przycisk Rozpocznij moduł
Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.
W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.
Do ukończenia modułu potrzebne będą:
- dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
- Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Rozpoczynanie modułu i logowanie się w konsoli Google Cloud
-
Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się wyskakujące okienko, w którym możesz wybrać formę płatności. Po lewej stronie znajduje się panel Szczegóły modułu z następującymi elementami:
- przyciskiem Otwórz konsolę Google;
- czasem, który Ci pozostał;
- tymczasowymi danymi logowania, których musisz użyć w tym module;
- innymi informacjami potrzebnymi do ukończenia modułu.
-
Kliknij Otwórz konsolę Google. Moduł uruchomi zasoby, po czym otworzy nową kartę ze stroną logowania.
Wskazówka: otwórz karty obok siebie w osobnych oknach.
Uwaga: jeśli pojawi się okno Wybierz konto, kliknij Użyj innego konta. -
W razie potrzeby skopiuj nazwę użytkownika z panelu Szczegóły modułu i wklej ją w oknie logowania. Kliknij Dalej.
-
Skopiuj hasło z panelu Szczegóły modułu i wklej je w oknie powitania. Kliknij Dalej.
Ważne: musisz użyć danych logowania z panelu po lewej stronie, a nie danych logowania Google Cloud Skills Boost. Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami. -
Na kolejnych stronach wykonaj następujące czynności:
- Zaakceptuj Warunki korzystania z usługi.
- Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ konto ma charakter tymczasowy).
- Nie rejestruj się w bezpłatnych wersjach próbnych.
Poczekaj, aż na karcie otworzy się konsola Google Cloud.
Aktywowanie Cloud Shell
Cloud Shell to maszyna wirtualna oferująca wiele narzędzi dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud. Dzięki wierszowi poleceń Cloud Shell zyskujesz dostęp do swoich zasobów Google Cloud.
- Kliknij Aktywuj Cloud Shell na górze konsoli Google Cloud.
Po połączeniu użytkownik od razu jest uwierzytelniony. Uruchomi się Twój projekt o identyfikatorze PROJECT_ID. Dane wyjściowe zawierają wiersz z zadeklarowanym identyfikatorem PROJECT_ID dla tej sesji:
gcloud
to narzędzie wiersza poleceń Google Cloud. Jest ono już zainstalowane w Cloud Shell i obsługuje funkcję autouzupełniania po naciśnięciu tabulatora.
- (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
-
Kliknij Autoryzuj.
-
Dane wyjściowe powinny wyglądać tak:
Dane wyjściowe:
- (Opcjonalnie) Aby wyświetlić identyfikator projektu, użyj tego polecenia:
Dane wyjściowe:
Przykładowe dane wyjściowe:
gcloud
w Google Cloud znajdziesz w opisie narzędzia wiersza poleceń gcloud.
Uruchamianie edytora kodu Cloud Shell
- W Cloud Shell kliknij ikonę Otwórz edytor, aby uruchomić edytor kodu. Być może trzeba będzie też kliknąć Otwórz w nowym oknie.
Zadanie 1. Tworzenie środowiska wirtualnego
- Kliknij ikonę Otwórz terminal.
Do oddzielenia instalacji pakietów od systemu są używane wirtualne środowiska języka Python.
- Aktywuj środowisko wirtualne:
Zadanie 2. Przygotowywanie aplikacji quizu
Repozytorium zawierające aplikację quizu znajduje się na stronie GitHub.com
.
W tej sekcji sklonujesz repozytorium i uruchomisz aplikację za pomocą poleceń Cloud Shell.
Klonowanie kodu źródłowego w Cloud Shell
- Sklonuj repozytorium na potrzeby wykonania ćwiczenia:
Konfigurowanie i uruchamianie aplikacji quizu
-
Zmień katalog roboczy:
cd ~/training-data-analyst/courses/developingapps/python/datastore/start -
Wyeksportuj zmienną środowiskową
GCLOUD_PROJECT
odwołującą się do identyfikatora projektu:export GCLOUD_PROJECT=$DEVSHELL_PROJECT_ID Zwróć uwagę na identyfikator projektu w Cloud Shell. Podczas pracy w Cloud Shell będziesz mieć dostęp do identyfikatora projektu w zmiennej środowiskowej `$DEVSHELL_PROJECT_ID`. -
Zainstaluj zależności aplikacji i zignoruj ostrzeżenia o braku zgodności:
pip install -r requirements.txt -
Uruchom aplikację:
python run_server.py Po uruchomieniu aplikacji zobaczysz komunikat podobny do tego:
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 179-313-240
Sprawdzanie aplikacji quizu
-
W Cloud Shell kliknij Podgląd w przeglądarce > Podejrzyj na porcie 8080, aby wyświetlić podgląd aplikacji quizu.
Powinien pojawić się interfejs aplikacji internetowej. 3 główne części aplikacji to:
- Create Question
- Take Test
- Leaderboard
-
Na pasku nawigacyjnym kliknij Create Question.
Zobaczysz prosty formularz zawierający pola tekstowe dla pytania i odpowiedzi z przyciskami umożliwiającymi wybór poprawnej odpowiedzi.
Uwaga: w tej części aplikacji autorzy quizów mogą dodawać pytania. Ta część aplikacji została napisana jako aplikacja internetowa po stronie serwera za pomocą popularnej platformy Flask, która służy do tworzenia aplikacji internetowych w języku Python. -
Na pasku nawigacyjnym kliknij Take Test, a następnie GCP, aby uzyskać dostęp do pytań dotyczących Google Cloud.
Zobaczysz przykładowe pytanie.
W tej części aplikacji osoby, które przystąpiły do rozwiązania quizu, odpowiadają na pytania.
Uwaga: ta część aplikacji jest napisana jako aplikacja internetowa po stronie klienta. -
Aby powrócić do aplikacji po stronie serwera, na pasku nawigacyjnym kliknij link Quite Interesting Quiz.
Zadanie 3. Sprawdzanie kodu aplikacji quizu
W tym module będziesz wyświetlać i edytować pliki. W tym celu możesz skorzystać z edytorów powłoki, które są zainstalowane w Cloud Shell, takich jak nano
lub vim
. Możesz też użyć edytora kodu Cloud Shell.
W tym module do sprawdzenia kodu aplikacji quizu użyjemy edytora kodu Cloud Shell.
Sprawdzanie aplikacji internetowej utworzonej przy użyciu platformy Flask
- Za pomocą panelu przeglądarki plików znajdującego się po lewej stronie edytora przejdź do folderu
/training-data-analyst/courses/developingapps/python/datastore/start
.
-
Wybierz plik
...run_server.py
.Ten plik zawiera punkt wejścia aplikacji i uruchamia ją na porcie 8080.
-
Wybierz plik
...quiz/_init_.py
.Ten plik importuje trasy aplikacji internetowej i interfejsu API REST.
-
Wybierz pliki
...quiz/webapp/questions.py
i...quiz/webapp/routes.py
.Te pliki zawierają trasy mapujące identyfikatory URI na elementy obsługi, które wyświetlają formularz i zbierają dane formularza opublikowane przez autorów quizu w aplikacji internetowej.
-
Wybierz folder
...quiz/webapp/templates
.W tym folderze znajdują się szablony interfejsu aplikacji internetowej. Są to szablony Jinja2.
-
Wyświetl plik
...quiz/webapp/templates/add.html
.Ten plik zawiera szablon Jinja2 dla formularza tworzenia pytań.
Zwróć uwagę, że znajduje się tu lista umożliwiająca wybór quizu, pola tekstowe, do których autor może wprowadzić pytanie i odpowiedzi, oraz przyciski umożliwiające wybranie poprawnej odpowiedzi.
-
Wybierz plik
...quiz/api/api.py
.Ten plik zawiera element obsługi, który wysyła dane JSON do osób rozwiązujących test.
-
Wybierz plik
...quiz/gcp/datastore.py
.W tym pliku można pisać kod Datastore umożliwiający zapisywanie pytań quizu w magazynie Cloud Datastore oraz wczytywanie ich stamtąd z powrotem.
Ten moduł zostanie zaimportowany do aplikacji internetowej i interfejsu API.
Zadanie 4. Dodawanie encji do Cloud Datastore
W tej sekcji napiszesz kod zapisujący dane formularza w Cloud Datastore.
# TODO
# END TODO
Aby zmaksymalizować efekty nauki, spróbuj napisać kod samodzielnie, bez patrzenia na gotowy blok kodu umieszczony na końcu tej sekcji. Dodatkowo przejrzyj kod, komentarze w tekście i powiązaną dokumentację interfejsu API Cloud Datastore.
Tworzenie aplikacji App Engine na potrzeby współpracy z Cloud Datastore
-
Wróć do Cloud Shell i zatrzymaj aplikację, naciskając Ctrl + C.
-
Aby utworzyć aplikację App Engine w projekcie, wpisz następujące polecenie:
gcloud app create --region "{{{project_0.startup_script.app_region | REGION }}}"
Po utworzeniu aplikacji App Engine zobaczysz następujący komunikat:
Kliknij Sprawdź postępy poniżej, aby zobaczyć postęp pracy z modułem.
Importowanie i używanie modułu Datastore w języku Python
-
Otwórz plik
...quiz/gcp/datastore.py
w edytorze Cloud Shell i dodaj znajdujący się poniżej zaktualizowany kod datastore.py, aby wykonać następujące zadania: -
Zaimportowanie modułu
os
. -
Uzyskanie zmiennej środowiskowej
GCLOUD_PROJECT
za pomocą modułu os. -
Zaimportowanie modułu
datastore
z pakietugoogle.cloud
. -
Zadeklarowanie obiektu klienckiego
datastore.Client
o nazwiedatastore_client
.
Zaktualizowany plik datastore.py
Pisanie kodu tworzącego encję Cloud Datastore
- Będąc w
...quiz/gcp/datastore.py
, przejdź do funkcjisave_question()
i usuń istniejącą instrukcję zastępcząpass
. Dodaj podany poniżej kod z pliku datastore.py dla funkcji save_question(), aby wykonać następujące czynności:
- Utworzenie za pomocą obiektu klienckiego Datastore klucza typu
'Question'
(Pytanie) dla encji Datastore. - Użycie Datastore w celu utworzenia encji pytania Datastore za pomocą klucza.
- Wykonanie iteracji na elementach słownika wartości dostarczonych za pomocą formularza aplikacji internetowej.
- Przypisanie poszczególnych kluczy i wartości w treści pętli do obiektu encji Datastore.
- Zapisanie danych za pomocą klienta Datastore.
datastore.py – funkcja save_question()
- Zapisz plik
datastore.py
.
Uruchamianie aplikacji i tworzenie encji Cloud Datastore
- Zapisz plik
...quiz/gcp/datastore.py
, a następnie powróć do znaku zachęty Cloud Shell. - Aby uruchomić aplikację, wpisz następujące polecenie:
- W Cloud Shell kliknij Podgląd w przeglądarce > Podejrzyj na porcie 8080, aby wyświetlić podgląd aplikacji quizu.
- Kliknij Create question.
- Wypełnij formularz następującymi wartościami, a następnie kliknij Zapisz.
Pole formularza |
Wartość |
Autor |
|
Test |
|
Tytuł |
|
Answer 1 |
|
Answer 2 |
|
Answer 3 |
|
Answer 4 |
|
Powinien nastąpić powrót do strony głównej aplikacji.
- Powróć do konsoli i kliknij Menu nawigacyjne > Datastore.
- Wybierz domyślną bazę danych i kliknij Encje.
Zobaczysz swoje nowe pytanie.
Kliknij Sprawdź postępy poniżej, aby zobaczyć postęp pracy z modułem.
Pobieranie encji Cloud Datastore
W tej sekcji napiszesz kod pobierający dane encji z Cloud Datastore w celu wyświetlenia pytania w aplikacji.
Pisanie kodu pobierającego encje Cloud Datastore
- W edytorze kodu, w pliku
...quiz/gcp/datastore.py
usuń kod z funkcjilist_entities(quiz, redact)
i zastąp go zapytaniem, które:
- Pobiera z Cloud Datastore encje Question dla konkretnego quizu.
- Za pomocą klienta Datastore pobiera zapytanie i tworzy listę na podstawie zwróconych danych.
- Wylicza listę elementów i promuje poszczególne identyfikatory kluczy encji do właściwości najwyższego poziomu.
- Zwraca wyniki.
- Zastąp ten kod:
Następującym kodem:
- Zapisz plik
datastore.py
.
Uruchamianie aplikacji i testowanie zapytania do Cloud Datastore
Teraz sprawdzisz, czy Twoje pytanie jest pobierane z Datastore i ładowane do aplikacji quizu.
- W Cloud Shell naciśnij Ctrl + C, aby zatrzymać aplikację, a następnie uruchom ją ponownie, wpisując:
-
Wyświetl podgląd quizu: jeśli przeglądarka, w której działa quiz, jest nadal otwarta, załaduj ją ponownie. W przeciwnym razie kliknij Podgląd w przeglądarce > Podejrzyj na porcie 8080.
-
Kliknij Take Test > GCP.
Zobaczysz utworzone pytania.
Gratulacje!
To już koniec modułu do samodzielnego ukończenia o nazwie „Tworzenie aplikacji: przechowywanie danych aplikacji w Cloud Datastore – Python”. Dane internetowej aplikacji quizu zostały zapisane w magazynie danych Datastore. Udało Ci się też skonfigurować aplikację do pobierania danych i wyświetlania ich w quizie.
Ukończ kurs
Ten moduł do samodzielnego ukończenia jest częścią kursu Application Development - Python. Każdy kurs składa się z zestawu powiązanych ze sobą modułów, które razem tworzą ścieżkę szkoleniową. Za ukończenie kursu otrzymujesz odznakę – stanowi ona potwierdzenie Twojego osiągnięcia. Swoje odznaki możesz ustawiać jako widoczne publicznie, a także podać do nich linki w swoim CV lub w mediach społecznościowych. Zarejestruj się na ten kurs lub dowolny kurs zawierający ten moduł, a zostanie on automatycznie zaliczony. Wszystkie dostępne kursy znajdziesz w katalogu Google Cloud Skills Boost.
Kolejne kroki / Więcej informacji
-
Więcej informacji na temat magazynów danych Datastore znajdziesz w dokumentacji Google Cloud Datastore.
-
Dowiedz się więcej o języku Python w Google Cloud.
Ostatnia aktualizacja instrukcji: 16 października 2023 r.
Ostatni test modułu: 18 października 2023 r.
Copyright 2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.