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

Параметр delete - це звичайний прапор, що вказує, потрібно чи видаляти файли на вилученому сервері після їхнього завантаження. У визначенні конструктора видно, що цьому параметру за замовчуванням привласнюється значення False. Після установки цих значень у вигляді атрибутів об'єкта виконується з'єднання із зазначеним сервером FTP і провадиться реєстрація. Потім здійснюється перехід у початковий каталог на стороні сервера й у початковий каталог на локальному комп'ютері.

Перш ніж виконати перехід у необхідний каталог на локальному комп'ютері, сценарій спочатку намагається створити його. Якщо каталог уже існує, буде отримане виключення OSError, що ігнорується сценарієм. У класі визначаються три додаткових методи: get_dirs_files, walk і гип. Метод get_dirs_files визначає, які файли перебувають у поточному каталозі і які з них є звичайними файлами, а які каталогами. (До речі кажучи, такий спосіб буде працювати тільки у випадку сервера, що працює під керуванням UNIX.)

Визначення, які з файлів є звичайними файлами, а які каталогами, провадиться по першому символі в рядках отриманого списку. Якщо перший символ d, виходить, - це каталог. Якщо перший символ '-', виходить, - це файл. Завдяки цьому сценарій не буде випливати за символічними посиланнями або займатися обробкою блокових устроїв. Наступний метод, що визначений у класі, - це метод walk. У цьому методі виконується вся основна робота. Метод walk приймає єдиний параметр: наступний каталог, що потрібно відвідати. Перш ніж рушити далі, нагадаємо, що це рекурсивна функція. Вона буде викликати саму себе

Якщо який-небудь каталог містить інші каталоги, метод walk також обійде їх. Метод walk спочатку переходить у зазначений каталог на стороні сервера. Потім виконується перехід в однойменний каталог на локальному комп'ютері, при цьому, якщо буде потреба, каталог створюється. Потім поточна позиція на сервері FTP і на локальному комп'ютері зберігається в змінних ftp_curr_dir і local_curr_dir для наступного використання. Далі за допомогою методу get_dirs_f iles, про яке вже говорилося вище, провадиться одержання списків файлів і каталогів.

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