Python'догу маалымат базалары жана ORM
sqlite3 модулунун төмөнкү деңгээлдеги DB-API'синен SQLAlchemy моделдерине, сессияларына жана миграцияларына чейин
sqlite3), мында сиз SQL'ди колдон жазасыз, жана ORM (SQLAlchemy), ал таблица саптарын Python объекттерине чагылдырат, ошондуктан сиз негизинен Python'до иштейсиз. Бири экинчисин алмаштырбайт — ORM DB-API'нин үстүндө курулган, экөөнү тең билүү аң-сезимдүү тандоо жасоого мүмкүндүк берет.
- туташуу ачып, SQL'ди курсор аркылуу иштетип,
sqlite3'те транзакцияныcommitменен бекитүү, - SQL-инъекциядан коргонуу үчүн параметрленген сурамдарды колдонуу,
- ORM эмнени жана эмне үчүн чагылдырарын түшүндүрүү,
- SQLAlchemy 2.0 моделин аныктап, Session (иш бирдиги) менен башкаруу,
- миграциялар (Alembic) кайсы маселени чечерин жана ORM'дин реалдуу компромисстерин сүрөттөө.
1. Эмне үчүн файл эмес, маалымат базасы?
Сиз JSON жана CSV окуп-жазганды билесиз. Файлдар бир жазуучусу бар кичине маалыматтар үчүн эң сонун. Маалымат базасы төмөнкүлөрдүн бири керек болгондо ордун актайт: сурамдар (баарын эстутумга жүктөбөй туруп «өткөн жумадагы 100'дөн кымбат буйрутмалардын баары»), конкуренттүүлүк (файлды бузбай көп окуучу жана жазуучу), бүтүндүк (кыймылдаткыч текшерген типтер, уникалдуулук, тышкы ачкычтар) жана транзакциялар (толугу менен же таптакыр болбой турган өзгөртүүлөр тобу).
SQLite — эң жумшак кириш: бул бир файлдын ичинде жашаган толук кандуу SQL кыймылдаткычы, Python менен sqlite3 модулу катары келет жана сервер талап кылбайт. Ушул жерде үйрөнгөн DB-API — стандарттык интерфейс (PEP 249), аны PostgreSQL үчүн psycopg да, MySQL драйверлери да ишке ашырат, ошондуктан формалар өткөрүлөт.