Mój projekt „po godzinach” rośnie i staje się coraz ciekawszy. Aplikacja we Flasku działała, ale do tej pory żyła trochę w próżni – bez możliwości trwałego zapisywania danych, bazując na dummy data w tablicach dla szybkich testów.
Przyszedł jednak czas na kluczowy i (jak się obawiałem) dość trudny krok: połączenie z bazą danych.
Chciałem to zrobić „jak należy” – bezpiecznie, wydajnie i w sposób, który jest standardem w branży.
🎯 Wyzwanie
Głównym celem było znalezienie sposobu na komunikację mojej aplikacji (napisanej we Flasku) z bazą danych.
Założenia były proste:
📌 Musi to być bezpieczne (mówimy NIE SQL injection).
📌 Chciałem, żeby rozwiązanie było… cóż, „pythonowe” i możliwie profesjonalne.
A więc standardowo… Research!
🛣️ Droga
Po szybkim researchu wybór padł na SQLAlchemy – bibliotekę, której nazwa przewijała się niemal wszędzie, gdy mowa o Pythonie i bazach danych.
Tak też trafiłem na magiczne trzy litery: ORM (Object-Relational Mapping).
To był dla mnie prawdziwy moment „wow”. 🤯 Słyszałem o tym wcześniej, ale dopiero teraz w praktyce zrozumiałem, o co w tym chodzi.
Zamiast ręcznie pisać INSERT INTO... czy SELECT * FROM..., nagle jestem w stanie zdefiniować całą strukturę bazy danych i operacje na niej, używając… zwykłych klas Pythona!
Model użytkownika w bazie? – klasa User w moim kodzie.
Nowy użytkownik? Tworzę obiekt tej klasy i dodaję go do „sesji”.
Resztą magii – czyli przetłumaczeniem tego na bezpieczne zapytania SQL – zajmuje się SQLAlchemy…
✅ Wynik
Po kilku kolejnych wieczorach spędzonych na czytaniu pisaniu, kopaniu i testowaniu:
🎯Aplikacja w końcu potrafi trwale zapisywać i odczytywać dane.
🎯Kod jest niesamowicie czysty, bo cała logika bazy danych jest pięknie zamknięta w modelach.
A co najlepsze, na potrzeby testów lokalnych łączę się z prostą bazą SQLite, a na serwerze docelowym mogę przełączyć się na produkcyjnego PostgreSQLa, zmieniając dosłownie jedną linijkę w konfiguracji! – I pomyśleć, że jeszcze w ostatnim projekcie sam pisałem własną mini-abstrakcję, żeby móc się tak łatwo przełączać… a tutaj dostaję to „w pakiecie” i zrobione jak należy!
Co najważniejsze, zrozumiałem w praktyce, jak działa ORM. To potężne narzędzie, które nie tylko upraszcza pracę, ale przede wszystkim dba o bezpieczeństwo i optymalizację „za kulisami”.
To niesamowite, jak jeden „klocek” potrafi tak bardzo podnieść jakość i architekturę całego projektu. Kolejna potężna technologia ląduje w moim plecaku! 💪
Działam dalej!
A Wy? Pamiętacie swoje pierwsze zderzenie z ORM-ami (czy to w SQLAlchemy, Django, czy czymś innym)? Też mieliście ten moment „wow”?
Podzielcie się w komentarzach! 👇😉
