Rozdział 22 · Tworzenie stron internetowych z Python

Dlaczego aplikacja webowa potrzebuje bazy danych

Lista Python w pamięci przechowuje dane tylko do momentu ponownego uruchomienia procesu — a prędzej czy później proces zostanie ponownie uruchomiony.

Lista zadań w sekcji 22.5 jest przechowywana w następujący sposób:

app.py
zadachi = [„Naucz się podstaw Python”, „Zbudować stronę na Flask”]

To zwykły zmienna Python — lista, który żyje w pamięci RAM aż do momentu Proces aplikacji jest w toku. Taka pamięć ma ograniczenia, które są niewidoczne na Mały przykład, ale staje się poważnym problemem wraz ze wzrostem aplikacji i obciążenia na nim.

ProblemCo się dzieje
RestartZatrzymałem proces Python (zaktualizowałem kod, zrestartowałem serwer) — lista zniknął razem z nim
Procesy wielokrotneWdrożenie produkcyjne (Rozdział 22.34) często uruchamia wiele procesów aplikacyjnych jednocześnie—każdy ma własną pamięć, własny lista i nie widzą zmian nawzajem
Zapytanie o daneListę można przeszukiwać i filtrować za pomocą Python, ale nie może szybko znaleźć potrzebnych wpisów wśród milionów bez pełnego wyszukiwania
Spójność przy jednoczesnych zmianachDwa żądania, które pojawiają się niemal jednocześnie, mogą nieprzewidywalnie zrujnować lista, jeśli oba zmienią je jednocześnie

DBMS (system zarządzania bazami danych) to system programowy, tworzenie, przechowywanie, zapytania i zarządzanie bazami danych; baza Dane są zorganizowane przechowywane dane, z którymi pracuje DBMS. DBMS zapewnia mechanizmy trwałego przechowywania, żądań, transakcji, limitów i Konsekwentna praca z danymi — rozwiązuje dokładnie te problemy. Konkretne zabezpieczenia dla zależą od wybranego DBMS, zaprojektowanego schematu, wykorzystania transakcji oraz kodu sama aplikacja: DBMS nie rozwiązuje automatycznie problemu, jeśli tego nie robi Używaj poprawnie.

Trwałość — dane, które przetrwają ponowne uruchomienie programu
Właściwość przechowywania danych tak, aby nie znikały po zakończeniu procesu, nazywa się z zachowaniem danych między uruchomieniami, czyli persistence. List Python nie posiada tej właściwości w pamięci; Plik na dysku lub bazie danych to robi.

Sekcje 22.21-22.28 analizują, jak bazy danych są zorganizowane i w jakim języku są pracę, a Rozdział 22.29 zastępuje lista Python w rozdziale roboczym bazą danych SQLite.