Створення оточень Гарфический інтерфейс Збереження даних
Приклади збереження даних
 У порівнянні з pickle або YAML для ініціалізації роботи з ZODB потрібно написати на парі рядків програмного коду більше, але як тільки сховище...
|
Функція List files
Це все, що відбувається у функції list_files. Дана функція настроюється зміною значення змінної log_dir. Інший спосіб впливу на роботу цієї функції міг би укладатися в зберіганні ім'я каталогу журналів у базі даних. Якби ім'я каталогу зберігалося в базі даних, ми могли б змінювати це значення без необхідності перезапускати додаток.
Функція view_log приймає як аргументи метод сортування й ім'я файлу журналу. Значення для обох цих аргументів витягають із URL за допомогою регулярного вираження, заданого у файлі urls.py. Для завдання методу сортування й ім'я файлу ми використовували іменовані групи в регулярному вираженні у файлі urls.py, але це не є обов'язковим.
Аргументи, витягнуті з URL, передаються функції подання в тім же порядку, у якому вони були знайдені у відповідних групах. Це розповсюджена практика, коли в регулярному вираженні розбору URL використовуються іменовані групи, тому що завдяки такому підходу ви легко можете сказати, які параметри витягають із URL, а також - як повинна виглядати рядок URL. Функція view_log відкриває файл журналу з ім'ям, отриманим з URL.
Потім виконується його аналіз за допомогою бібліотеки аналізу файлів журналів Apache з наведених раніше прикладів, щоб перетворити кожний рядок у кортеж, у форматі: статус, вилучений_хост, кількість_байтів і залишок рядка журналу. Потім функція view_log сортує список кортежів, що був отриманий з URL, з урахуванням зазначеного методу сортування. На закінчення функція view_log передає отриманий список шаблону view_logf ile. html для відображення. Єдине, що залишилося зробити, це створити шаблони, які використовуються функціями подання для відображення інформації.
Шаблони в платформі Django можуть успадковувати інші шаблони, завдяки чому підвищується рівень багаторазового використання коду й забезпечується однаковість зовнішнього вигляду сторінок. Першим ми створимо шаблон, що є батьківським для двох інших шаблонів. Цей шаблон буде визначати загальний зовнішній вигляд для інших двох шаблонів у додатку. Саме тому ми й почнемо з його. Це дуже простий базовий шаблон. Можливо, це найпростіша сторінка HTML, що тільки можна одержати.
Єдині елементи, які представляють тут інтерес,- це два розділи "block": "title" і "content". Коли в батьківському шаблоні визначається розділ "block", дочірній шаблон одержує можливість замінити його своїм власним умістом. Це дозволяє задавати вміст за замовчуванням, що може бути заміщене в дочірньому шаблоні. Блок "title" дозволяє дочірнім сторінкам визначати значення, що буде відображатися в циклодромі title . Блок "content" - це типовий прийом відновлення "головного" роздягнула сторінки без внесення змін в іншу частину сторінки.
У цьому шаблоні ми вказуємо, що розширюємо шаблон "base.html". Це дозволяє використовувати все, що визначено в базовому шаблоні, включати свій код у будь-які блоки, які були визначені, і перевизначати їхнє поводження. Саме це ми й робимо із блоками "title" і "content". У блоці "content" у циклі виконується обхід умісту змінної f ile_list, що була передана шаблону. Для кожного елемента в списку file_list створюється посилання, у результаті клацання на якій буде відкритий відповідний файл журналу.
|
Служба аутентификации
 Одне із самих удалих визначень, з якими нам доводилося зіштовхуватися, приводиться у Википедии: "прикладний протокол, що дозволяє звертатися до служби каталогів, що працює поверх протоколу TCP/IP".
Як приклад...
Веб додатка
 Одне з поліпшень, яке можна було б внести в цей додаток, -це реалізувати сортування в порядку, зворотному поточний. Зробити це досить просто, але ми залишимо реалізацію цієї можливості читачам. Як ще одне поліпшення...
Запуск сценарію
 Це в точності відповідає нашим очікуванням. Тепер спочатку спробуємо запустити сценарій, що додає новий запис, а потім знову запустимо сценарій, що витягає дані. Цей приклад ідентичний попередньому прикладу, де використовувався метод store,...
Створення звітів
 Крім того, ми могли б розширити цей сценарій і відшукувати запису з обсягом використання 80 відсотків, 70 відсотків і видавати попередження по досягненні цих рівнів. Такий сценарій легко можна було б об'єднати, наприклад, с...
|