Rozdział 22 · Tworzenie stron internetowych z Python

ORM: pracy z bazą danych za pomocą Python obiektów

Wiersze tabeli jako obiekty Python — wygodne, ale ORM i tak tworzy i wykonuje zwykły SQL.

Rozdział 22.22 napisała tekstowe zapytania w SQL-. ORM (Object-Relational Mapper — mapowanie obiektowo-relacyjne) — to biblioteka, która pozwala pracować z łańcuch znakówtabelami jak z zwykłymi obiektami Python, a nie tworzyć SQL-tekst ręcznie. Różne ORM mają różny API — oto to samo zapytanie i ta sama wstawka w dwóch najbardziej widocznych ekosystemach ORM i Python:

AkcjaSQL bezpośrednioDjango ORMSQLAlchemy 2.x
Przeczytać niewykonane zadaniaSELECT id, title FROM tasks WHERE done = 0Task.objects.filter(done=False)select(Task).where(Task.done.is_(False))
Dodaj nowe zadanieINSERT INTO tasks (title) VALUES (?)Task.objects.create(title="Купить хлеб")session.add(Task(title="Купить хлеб"))

SQLAlchemy (opisuje siebie jako „zestaw narzędzi SQL i konwerter obiektowo-relacyjny dla Python” ORM Django jest częścią samego frameworka i jest mu bliski zintegrowane to różne biblioteki o różnych API, a nie dwie nazwy tego samego narzędzi.

ORM nie wyklucza potrzeby zrozumienia SQL
ORM wygodnie eliminuje rutynę ręcznego zbierania tekstu zapytania dla każdej operacji. Ale nie usuwa samego modelu relacyjnego: ORM nadal generuje i wykonuje SQL- zapytań na podstawie operacji obiektowych, a zrozumienie, jak działają tabele, relacje i zapytania (sekcje 22.21-22.22), ma bezpośredni wpływ na efektywność i poprawność ORM — zwłaszcza gdy zapytania przez ORM nie są tak szybkie jak się spodziewasz i trzeba zrozumieć, jakiego rodzaju SQL wykonał.

Dlaczego projekt końcowy wykorzystuje sqlite3

Do wersji roboczej tego rozdziału (Rozdział 22.29) wybrano moduł bezpośredni sqlite3, nie ORM: celem tego rozdziału jest zrozumienie, co dokładnie Dzieje się z danymi na każdym etapie, nie ukrywając ich wcześniej za warstwą abstrakcji jak ta abstrakcja stanie się jasna. ORM jest użytecznym i powszechnym narzędziem dla prawdziwych projektów, ale tutaj odciągałby uwagę od samej idei rozdziału.

Praktyka: SQL i jego prezentacja w ORM
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →