%%file app.py
###
# TWOJ KOD API
###
Writing app.py
W tym ćwiczeniu nauczysz się, jak stworzyć proste API w Flasku, uruchomić je, wysyłać do niego zapytania oraz wykorzystać model decyzyjny w oparciu o podstawową regułę logiczną.
Najpierw utworzymy podstawową aplikację Flask.
W Jupyter Notebooku użyj magicznej komendy %%file
, aby zapisać kod podstawowej aplikacji flask do pliku app.py
: Kod znajdziesz na cw1 Jako tekst do wyświetlenie strony głównej użyj Witaj w moim API!
.
Teraz uruchom API w terminalu, wpisując:
Flask uruchomi serwer lokalnie pod adresem http://127.0.0.1:5000/
.
W Jupyter Notebooku wykonaj zapytanie GET do strony głównej. Na podstawie pola status_code
napisz wyrażenie warunkowe które dla status_code 200 wyświetli zawartość odpowiedzi (z pola content
).
Jeśli wszystko działa poprawnie, zobaczysz komunikat Witaj w moim API!
.
Dodajmy nową podstronę mojastrona
, która zwróci komunikat To jest moja strona!
.
Ponownie uruchom API i wykonaj zapytanie do strony "http://127.0.0.1:5000/mojastrona"
:
Powinieneś zobaczyć: To jest moja strona!
Zamknij wcześniej uruchomiony serwer (Ctrl+C
w terminalu) i uruchom go ponownie bezpośrednio z Jupyter Notebook, korzystając z subprocess.Popen
:
Po testach zamknij serwer wykorzystując metodę kill
:
Dodajemy nową podstronę /hello
, która będzie przyjmować parametr name
.
Edytuj app.py
, dodając odpowiedni kod
Uruchom serwer i sprawdź działanie API:
res1 = requests.get("http://127.0.0.1:5000/hello")
print(res1.content) # Powinno zwrócić "Hello!"
res2 = requests.get("http://127.0.0.1:5000/hello?name=Sebastian")
print(res2.content) # Powinno zwrócić "Hello Sebastian!"
Stworzymy nową podstronę /api/v1.0/predict
, która przyjmuje dwie liczby i zwraca wynik reguły decyzyjnej: - Jeśli suma dwóch liczb jest większa niż 5.8, zwraca 1
. - W przeciwnym razie zwraca 0
.
Sprawdź działanie API:
res = requests.get("http://127.0.0.1:5000/api/v1.0/predict?num1=3&num2=4")
print(res.json()) # Powinno zwrócić {"prediction": 1, "features": {"num1": 3.0, "num2": 4.0}}
Po wykonaniu tego ćwiczenia studenci będą umieli: