Огляд скриптовых мов - Python
Приклади збереження даних Приклади збереження данихУ порівнянні з pickle або YAML для ініціалізації роботи з ZODB потрібно написати на парі рядків програмного коду більше, але як тільки сховище...
Контактні дані Київ, Мясницкая вул., 35
Телефон: +38 (044) 997 - 93 - 19
Факс: +38 (044) 999 - 99 - 91
Підтримка SQLite
Storm ORM: Незважаючи на те, що простого SQL-Інтерфейсу до бази даних цілком достатньо для витягу, зміни, додавання й видалення даних у базі, проте, часто буває зручніше не відмовлятися від простоти й зручності мови Python.

За останні кілька років у способах доступу до баз даних з'явився новий напрямок - объектно-ориентированное подання даних, що зберігаються в базі. Цей напрямок називається объектно-реляционной проекцією (Object-Relational Mapping, ORM). У термінах ORM об'єкт мовою програмування може відповідати одному рядку в одній таблиці бази даних. Таблиці, зв'язані відносинами зовнішнього ключа, можуть бути доступні у вигляді атрибутів такого об'єкта.

Storm - це інструмент ORM, що недавно був випущений як продукт, розповсюджуваний з відкритими вихідними текстами, компанією Canonical, що веде розробку дистрибутива Linux - Ubuntu. Storm - це відносно новий продукт серед коштів доступу до баз даних для мови Python, але до нього вже проявляється пильна увага й ми думаємо, що він стане одним з основних коштів ORM у мові Python. Тепер ми спробуємо використовувати Storm для доступу до даних у базі, що була визначена в розділі "SQLite".

Перше, що нам варто зробити, - це створити відображення для таблиць, що цікавлять нас. Оскільки ми вже зверталися до таблиці inventory_operatingsystem і додали в неї один запис, ми продовжимо роботу із цією таблицею. Це саме звичайне визначення класу. Тут немає нічого надприродного. Тут не успадковується якийсь інший клас, крім убудованого типу object. Зате є кілька атрибутів. Єдине, що виглядає небагато дивно, - це атрибут __storm_table. З його допомогою бібліотека Storm визначає, для доступу до якої таблиці буде використовуватися цей об'єкт.

Поки все виглядає досить просто й цілком звичайно, і, проте, у всім цьому все-таки є крапелька магії. Наприклад, атрибут name відображається на поле name у таблиці inventory, operatingsystem, а атрибут description відображається на поле description у тій же таблиці. Як? Магія. Будь-який атрибут, що є присутнім у класі проекції Storm, автоматично відображається на однойменне поле в таблиці, ім'я якої визначається атрибутом storm_table. А що, якщо нам не потрібно, щоб атрибут description об'єкта відображався на поле description?
Служба аутентификации Служба аутентификацииОдне із самих удалих визначень, з якими нам доводилося зіштовхуватися, приводиться у Википедии: "прикладний протокол, що дозволяє звертатися до служби каталогів, що працює поверх протоколу TCP/IP". Як приклад...
Веб додатка Веб додаткаОдне з поліпшень, яке можна було б внести в цей додаток, -це реалізувати сортування в порядку, зворотному поточний. Зробити це досить просто, але ми залишимо реалізацію цієї можливості читачам. Як ще одне поліпшення...
Запуск сценарію Запуск сценаріюЦе в точності відповідає нашим очікуванням. Тепер спочатку спробуємо запустити сценарій, що додає новий запис, а потім знову запустимо сценарій, що витягає дані. Цей приклад ідентичний попередньому прикладу, де використовувався метод store,...
Створення звітів Створення звітівКрім того, ми могли б розширити цей сценарій і відшукувати запису з обсягом використання 80 відсотків, 70 відсотків і видавати попередження по досягненні цих рівнів. Такий сценарій легко можна було б об'єднати, наприклад, с...
 
(c) Copyright