Rozdział 22 · Tworzenie stron internetowych z Python

Podstawy tworzenia stron internetowych: klient, serwer i Python

Aplikacja webowa to dialog między klientem a serwerem. Ustalmy, kto jest kim.

Aplikacja webowa zazwyczaj składa się z dwóch stron współdziałających: klienta i serwera. Klientem najczęściej jest przeglądarka. Wysyła HTTP- żądań i wyświetla otrzymane odpowiedzi. Backend przyjmuje żądania, wykonuje logikę aplikacji, jeśli jest to konieczne Uzyskuje dostęp do bazy danych i generuje odpowiedź.

Python jest często używany do programowania backendu aplikacji webowej. W tym Aplikacja TChapter Server jest napisana w Python przy użyciu Flask.

A co z Python w przeglądarce?
To nie znaczy, że Python nie może działać w przeglądarce w zasadzie. Istnieją środowiska oparte na WebAssembly, takie jak Pyodide — które stanowią podstawę interaktywnej praktyki tej książki — które pozwalają Python wykonywać po stronie klienta. Jednak jest to inny model wykonania; tutaj badane jest klasyczne programowanie stron serwerowych.

Klient i serwer

Klient — program, który wysyła zapytanie i otrzymuje na nie odpowiedź. Serwer to program, który przyjmuje i odpowiada na żądania. Word „serwer”

Przeglądarka (klient)wysyła prośbęInternetprzesyła daneSerwerprzygotowuje odpowiedźPrzeglądarka (klient)pokazuje stronę
Jeden cykl: zapytanie leci do serwera, odpowiedź wraca i jest wyświetlana w przeglądarce

Ta wymiana żądań i odpowiedzi podlega ogólnej zasadzie, zwanej protokołem HTTP (HyperText Transfer Protocol, protokół transferu hipertekstu). Więcej informacji można znaleźć w sekcjach 22.7-22.10; tutaj wystarczy wiedzieć, że przeglądarka i serwer Wymieniać się wiadomościami według tych samych zasad, niezależnie od tego, kto je napisał.

co robi przeglądarka

Przeglądarka to program kliencki, który pod adresem użytkownika buduje i wysyła HTTP-żądanie, otrzymuje HTTP-odpowiedź i wyświetla ją: analizuje HTML, stosuje CSS, wykonuje JavaScript, pokazuje obrazy i inne zasoby strony.

Co robi aplikacja serwerowa

Aplikacja serwera akceptuje żądanie, decyduje, co zrobić (otwórz lista zadania, zapisz nowy rekord, zwróć dane w JSON) formacie, jeśli to konieczne, do bazy danych i generuje odpowiedź — najczęściej stronę lub dane HTML-.

Gdzie Python używany

W typowej aplikacji webowej Python działa po stronie serwera: kod działa na a gotowy wynik jest wysyłany do przeglądarki. Dalej w tym rozdziale tak to wygląda — Python jest wykonywany przez serwer zbudowany na Flask.

Internet i World Wide Web

Internet to siatka, która fizycznie łączy komputery ze sobą i wie, jak przesyłać dane między nimi. World Wide Web (World Wide Web, Web) to jeden ze sposobów wykorzystania tej sieci: strony, połączenia między nimi, protokół HTTP. Inne usługi również działają w tym samym Internecie – poczta, komunikatory, gry online, - Internet to tylko jedna z nich, choć najbardziej widoczna.

Adres strony internetowej: domena i adres IP-

Aby poinformować przeglądarkę, do którego serwera ma się udać, strona ma domena — Nazwa gatunkowa python.orgto łatwo zapamiętać. Ale Komputery w Internecie odnajdują się nawzajem za pomocą adresów numerycznych — IP-adresy. Specjalna usługa, DNS, zamienia domenę w adres IP- przed wysyłanie żądania. Cała ta podróż jest szczegółowo omówiona w sekcji 22.7 oraz urządzenie Sam adres znajduje się w sekcji 22.8.

Frontend i backend

Co użytkownik widzi i z czym wchodzi w interakcje w przeglądarce — HTML, CSS, JavaScript — są nazywane frontend (front — „przed”). Program, który działa na serwerze i przygotowuje odpowiedzi, nazywa się backendem (back – „tył”

Strona statyczna i dynamiczna aplikacja

Najprostsza strona to po prostu pliki .htmlleżąc na Serwer: Serwer zwraca je bez zmian, to jest statyczny strona. Jeśli odpowiedź jest za każdym razem tworzona na nowo — z uwzględnieniem tego, kto pytał, co jest w bazie danych, co człowiek właśnie wysłał w formularzu — taką aplikację nazywa się dynamika. Strona internetowa, którą stworzysz w tym rozdziale na Flasku, — dynamiczna: buduje stronę HTML z danych bezpośrednio podczas zapytania.

Poniższe trzy sekcje zawierają krótkie wprowadzenie do języków front-endowych: HTML (Rozdział 22.2), CSS (sekcja 22.3) oraz JavaScript (sekcja 22.4). Następnie pierwszy backend na Python z Biblioteka Flask (Rozdział 22.5).