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

Цей приклад досить очевидний, особливо якщо врахувати, що ми вже розглядали інші приклади збереження даних. І, проте, ми швидко пройдемося по ньому. По-перше, ми імпортуємо кілька модулів ZODB, а саме ZODB, ZODB. FileStorage і transaction. (Ми хотіли б тут зробити невелике зауваження. Імпортування модуля, в ім'ї якого відсутній ідентифікаційний префікс, виглядає трохи дивно.

Створюється враження, що імпортований модуль transaction повинен мати префікс ZODB. Але як би те не було, ім'я модуля таке, яке є, і вам просто досить знати про це. А тепер можна рухатися далі.) Потім створюється об'єкт FileStorage, якому вказується ім'я файлу, що буде використовуватися як база даних. Потім створюється об'єкт DB і підключається до об'єкта FileStorage. Потім об'єкт бази даних відкривається за допомогою методу ореп і знаходиться посилання на кореневий вузол об'єкта.

Із цього моменту ми можемо додавати в корінь об'єкта свої структури даних, що ми й робимо, використовуючи імпровізовані список і словник. Після цього ми підтверджуємо зміни за допомогою функції t ransaction. commit і потім закриваємо з'єднання з базою даних викликом методу conn. close. Як тільки буде створений контейнер сховища даних (як об'єкт файлу сховища в цьому прикладі) і запис даних буде підтверджена, у вас може з'явитися потреба відновити ці дані.

При описі інших механізмів збереження данных ми розглядали приклади сериализации своїх власних класів, тому ми покажемо, як т же саме робиться за допомогою ZODB. Однак цього разу ми не будемо використовувати той же самий клас MyClass (пізніше пояснимо, чому). Як і при використанні інших механізмів, ми просто оголосимо свій клас, створимо екземпляр цього класу й потім передамо його механізму сериализации для збереження на диску.

Це дуже простий клас, що імітує банківський рахунок і призначений для керування коштами. Ми також чи визнач виключення OutOfFunds, призначення якого пояснимо пізніше. Клас Account успадковує клас persistent. Persistent. (Що стосується модуля persistent, ми знову могли б зробити пишномовний відступ про доречність значимого префікса в ім'ї модуля, що передбачається використовувати.
Служба аутентификации Служба аутентификацииОдне із самих удалих визначень, з якими нам доводилося зіштовхуватися, приводиться у Википедии: "прикладний протокол, що дозволяє звертатися до служби каталогів, що працює поверх протоколу TCP/IP". Як приклад...
Веб додатка Веб додаткаОдне з поліпшень, яке можна було б внести в цей додаток, -це реалізувати сортування в порядку, зворотному поточний. Зробити це досить просто, але ми залишимо реалізацію цієї можливості читачам. Як ще одне поліпшення...
Запуск сценарію Запуск сценаріюЦе в точності відповідає нашим очікуванням. Тепер спочатку спробуємо запустити сценарій, що додає новий запис, а потім знову запустимо сценарій, що витягає дані. Цей приклад ідентичний попередньому прикладу, де використовувався метод store,...
Створення звітів Створення звітівКрім того, ми могли б розширити цей сценарій і відшукувати запису з обсягом використання 80 відсотків, 70 відсотків і видавати попередження по досягненні цих рівнів. Такий сценарій легко можна було б об'єднати, наприклад, с...
 
(c) Copyright