В настоящее время нет никаких элементов на вашем столе
ФОРМА без исправлений
НЕ СДАЁТСЯ[1]
Преподаватель — Неудачин И.Г.
«ИНФОРМАТИКА ООП Python&Zope»
Сайт школы ZooPython[2]
Курсовая работа
Руководитель: Неудачин И.Г.
Студент: Семёнова Ольга Андреевна
Группа: ФТ — 110802
Дата: ДД.ММ.09[3]
Екатеринбург 2004г.
Уральский ордена Трудового Красного Знамени политехнический
институт ГОУ ВПО УГТУ — УПИ
«УТВЕРЖДАЮ»
Зав кафедрой
« » 2009 г.
______________________________
Студент группы ФТ-110802 специальность 230101
Фамилия Семёнова Имя Ольга Отчество Андреевна
Руководитель курсовой работы Неудачин И.Г.
Срок проектирования с 27 октября 2009 г. по 23 декабря 2009 г.
1. Тема курсовой работы: Web-сайт ZooPython "здесь привести тему своей курсовой работы"****
2. Содержание работы: Анализ задания, проект, спецификации, функции проекта. Оформить техническое задание и пройти все этапы разработки сайта и документов сопровождения. Написать отчёт. Среда проектирования: Python и Zope
3. Особые дополнительные сведения. Этапы проектирования и реализации сайта и оформления документов выполняются в оптимальном сочетании контактного и самостоятельного способов исполнения. Руководство посетителя оформляется в виде отчёта по курсовой работе.
4. План выполнения курсовой работы:
Наименование элементов работы|Сроки |Примечание|Отметка о вы-
| | | полнении
Выдача задания |27.10 | 3% | Выполнено
Оформление технического зада-| 8.11-| 7% | Выполнено
ния |20.11 | |
Эскизный проект |22.11-| 10% | Выполнено
|27.11 | |
Технический проект |29.11-| 20% | Выполнено
| 4.12 | |
Рабочий проект | 6.12-| 40% | Выполнено
|11.12 | |
Оформление пояснительной за- |13.12-| 15% | Выполнено
|18.12 | |
Защита курсовой работы |20.12-| 5% | Выполнено
|25.12 | |
5. Курсовая работа закончена
6. Работа зачтена
Руководитель Неудачин И.Г.
Оглавление
1. Аннотация...................................................................................................................................... 3
2. Техническое задание...................................................................................................................... 3
3. Спецификация................................................................................................................................ 3
4. Страничная структура проекта сайта ZooPython....................................................................... 3
5. Интерфейсы разработчика............................................................................................................ 3
6. Интерфейсы посетителя................................................................................................................ 3
7. Руководство разработчика............................................................................................................ 3
8. Ролевой доступ и безопасность.................................................................................................... 3
9. Заключение..................................................................................................................................... 3
Библиографический список.............................................................................................................. 3
1. Аннотация
1.1. Информационная технология: Объектный Web-дизайн. Разработка систем в открытых кодах (Open Source).
1.2. Разработка сайта велась по заказу каф. ВТ УГТУ-УПИ.
1.3. Проект Web-сайта и сопутствующие документы направлены на организацию взаимодействия членов сообщества школы ZooPython. Они получают доступ в режиме online к общим и персональным информационным ресурсам.
1.4. Технические характеристики:
1.4.1. Сайт ZooPython является объектным Web-приложением. Сайт защищён от случайного или намеренного разрушения клиентом системами авторизации и аутентификации.
1.4.2. Используются базовые объекты Zope и объекты установленных продуктов и библиотек.
1.4.3. Проект Web-сайта предусматривает взаимодействие с другими программными продуктами (опрос - Poll, фото и альбом фото – Photo, календарь - Calendar) и библиотекой (обработки изображений - Pil).
1.4.4. Проект Web-сайта разрабатывался в инфраструктуре публикации объектов Zope. Доступ к сайту разработчикам и клиентам возможен с помощью любого Web-браузера.
1.4.5. Основным скриптовым языком программирования логики приложения выбран Python.
1.4.6. В качестве языка разметки данных применялся DTML - это средство построения модульных и динамических Web-интерфейсов для приложений. DTML динамически генерирует, форматирует и управляет контентом.
1.4.7. Операционная система Windows 95/98, NT, XP или Linux. Принципиально, проект является кроссплатформенным.
1.5. Структура Web-сайта школы ZooPython.
1.5.1. Сайт имеет иерархическую структуру и состоит из страниц, содержащих прикладную информацию и предоставляющих услуги, описанных в спецификации (см. раздел 3).
1.5.2. Переходы между страницами происходят при помощи навигаторов, связывающих гиперссылками соседние и вложенные страницы.
1.5.3. Страницы легко модифицируются, портируются и вкладываются одна в другую, т.к. оформлены в виде контейнеров (тип Folder).
1.6. Требования к вычислительной системе. Процессор не ниже Pentium. Оперативная память 32МБ.
1.6.1. Объем экспортного файла ZooPythonSite5.zexp = 437 КБ.
1.6.2. Размеры кталогов продуктов Poll = 73 КБ, Photo = 195 КБ Calendar = 213 КБ, библиотеки PIL = 422 КБ.
1.6.3. Имя и пароль для входа в интерфейс управления Zope: ZooPy, ZooPy.
2. Техническое задание
Web-сайт ZooPython (курсовая работа)
2.1. Задание:
Создать Web-сайт ZooPython Уральского сообщества последователей объектного Web-дизайна в инфраструктуре Python&Zope.
2.2. Требования к Web-сайту: Web-сайт ZooPython будет использоваться на персональных компьютерах в операционной системе Windows NT, XP, Vista или Linux.
2.2.1. Предусмотрены раздельные режимы работы:
а) Анонимный посетитель.
б) Персональный режим работы, защищенный от вмешательства других клиентов сайта.
в) Системный администратор.
2.2.2. Web-сайт ZooPython должен разрешать в режиме работы администратора:
а) Создание, удаление, редактирование, анализ, просмотр объектов сайта.
б) Масштабирование, перекомпоновку, развитие за счёт импорта объектов и установки новых продуктов.
в) Импорт и экспорт сайта и его объектов на другие серверы Zope.
и т.д.
2.2.3. Web-сайт ZooPython должен включать в себя следующие информационные функции:
а) Доступ к нужной информации через навигаторы;
б) Предоставление текстовой и графической информации (альбом изображений с возможностью предварительного выбора и последующего масштабирования).
в) Работа через элементы управления и гиперссылки;
г) Удалённый ролевой доступ с помощью любого Web-браузера;
д) Оперативный опрос клиентов по актуальным вопросам;
е) Наличие файловой бибилиотеки;
ж) Режимы работы разработчика и посетителя.
з) Модель дополнительных платных услуг.
2.3. Требования к интерфейсу посетителя:
Просмотр страниц возможен в окнах Web-браузера любого стандартного типа. Обработка и хранение данных в основном происходит на главной машине, а не ЭВМ клиента.
Интерфейс посетителя сайта должен создаваться стандартными средствами объектных типов Zope. Структура интерфейса включает: информацию для изучения, настройку необходимых свойств, средства ввода и отображения текстовой и графической информации, управляющие элементы. Документы и Проект Web-сайта должны быть защищены от несанкционированного доступа.
Web-Сайт ZooPython предоставляет дополнительную информацию о нём, а также о содержащейся в нем информации в справочных файлах.
Разработка Сайта должна осуществляться в соответствии со сроками, указанными в «Задании по курсовому проектированию».
3. Спецификация
Страничная иерархическая структура сайта ZooPython
3.1. Главная страница (ZooPythonSite, Портал школы ZooPython. I уровень дерева контента сайта). Каждая страница является контейнером (тип Folder)
№ стр п/п | Тема страницы (id, title) | Содержание страницы (Типы объектов) | Количество объектов | Варианты переходов на страницы №№ |
Главная страница. (ZooPythonSite, Портал школы ZooPython) | Folder File Page Template DTML Method | 1, 2, 3, 4, 5, 6 | ||
Диспетчер сайта. (Navigation, План автоматической навигации) | Folder Script(Python) Page Template | 1, 2, 3, 4, 5, 6 | ||
Вспомогательный навигатор. (TreeView, Дерево навигации PythonZope) | DTML Method | На все содержащиеся внутри объекты | ||
Книга посетителей. (GuestBook, Книга посетителей) | Folder Script(Python) Page Template | |||
Библиотека Файлов. (FileLibrary, Библиотека Файлов) | Folder Script(Python) Page Template | |||
Школьный буфет. (BuffetPyZope, Школьный буфет ZooPython) | Folder Page Template DTML Method File | |||
Интернет – заказ. (ShoppingCart, Корзина покупок) | Folder Page Template DTML Method File | |||
Σ |
3.2. Диспетчер сайта (Navigation, План автоматической навигации. I уровень дерева контента сайта)
№ объ п/п | Объект страницы (id, title) | Тип объекта | Описание |
1.1 | Birds, Птицы | Folder | Класс. |
1.2 | Mammals, Млекопитаюшие | Folder | Класс. |
1.3 | Reptiles, Рептилии | Folder | Класс. |
1.4 | index_html, Страница навигации | Page Template | Представление View |
1.5 | breadcrumbs.py, Родительские ссылки | Script(Python) | Гиперссылки вверх. |
1.6 | siblings.py, Список соседних папок | Script(Python) | Соседи по сайту. |
Σ |
3.3. Вспомогательный навигатор (TreeView, Дерево навигации PythonZope. II уровень дерева контента сайта).
№ объ п/п | Объект страницы (id, title) | Тип объекта | Описание |
2.1 | index_html, Вид страницы | DTML Method | Представление View. Вывод навигатора |
2.2 | treeExpandCollapse, | DTML Method | Развернуть/Свернуть дерево навигации |
Σ |
3.4. Книга посетителей (GuestBook, Книга посетителей. II уровень дерева контента сайта).
№ объ п/п | Объект страницы (id, title) | Тип объекта | Описание |
3.1 | index_html, Вид страницы | DTML Method | Представление View |
3.2 | addEntry.html, Корзина покупок | Page Template | Добавляет запись в книгу посетителей |
3.3 | formatEntry | Script(Python) | |
3.4 | addEntry | Script(Python) | Создаёт запись для книги посетителей |
3.5 | getEntries | Script(Python) | Список посещений |
3.6 | Entries, Посещения | Folder | Файловые объекты записей |
Σ |
3.5. Библиотека Файлов (FileLibrary, Библиотека Файлов. II уровень дерева контента сайта).
№ объ п/п | Объект страницы (id, title) | Тип объекта | Описание |
4.1 | index_html, Вид страницы | Page Template | Представление View |
4.2 | Files, Файлы | Folder | Папка с файловыми объектами |
4.3 | addFile | Script(Python) | Добавляет файл в библиотеку |
4.4 | getFiles | Script(Python) | Упорядочиваемый список файлов |
4.5 | getLink | Script(Python) | Возвращает URL для сортировки |
4.6 | getSize | Script(Python) | Форматирование размера файла в B, KB, MB |
Σ |
3.6. Школьный буфет (BuffetPyZope, Школьный буфет ZooPython. II уровень дерева контента сайта).
№ объ п/п | Объект страницы (id, title) | Тип объекта | Описание |
5.1 | index_html, Вид страницы | Page Template | Представление View |
5.2 | Buffet, Буфет | Folder | Содержание см. ShoppingCart |
5.3 | standard_html_footer, Хвостовик | DTML Method | Подвал страницы |
5.4 | standard_html_header, Заголовок | DTML Method | Заголовок страницы |
Σ |
3.7. Интернет – заказ (ShoppingCart, Корзина покупок. II уровень дерева контента сайта).
№ объ п/п | Объект страницы (id, title) | Тип объекта | Описание |
6.1 | index_html, Вид страницы | Page Template | Представление View |
6.2 | addItems | Script(Python) | Добавляет элемент |
6.3 | currentItems | Script(Python) | Список элементов |
6.4 | deleteItems | Script(Python) | Удаляет элемент |
6.5 | getItem | Script(Python) | Возвращает элемент по id |
6.6 | getTotal | Script(Python) | Сумма заказа |
Σ |
4. Страничная структура проекта сайта ZooPython
Сайт имеет иерархическую структуру. Навигаторы позволяют перемещаться по страницам сайта в глубину, по вложениям объектов и по горизонтали, к соседним страницам. Страницы являются контейнерами (тип Folder). Они могут встраиваться внутрь других страниц. Вывод их содержимого в окне Web-браузера выполняют объекты index_html (тип Page Template или DTML Method).
Список элементов проекта и их функций: объекты (информационные, логические, содержательные, презентационные), продукты, библиотеки см. главу 7 "Руководство разработчика". Место хранения и получения сайта и его компонентов – портал дистанционного обучения ИДОП УГТУ-УПИ http://ucs-ustu.ru/docs
5. Интерфейсы разработчика
5.0. Портал школы ZooPython (главная страница)
5.1. Навигатор школы ZooPython (страница Navigation)
5.2. Вспомогательный навигатор школы ZooPython (свёрнутая страница Teachers)
См. пункт 6.2.
5.3. Книга посетителей (страница GuestBook)
5.4 Библиотека Файлов (страница FileLibrary)
5.5 Школьный буфет (страница BuffetPyZope)
5.6 Фотоальбомы “Удавы” и “Фото Python” (страницы Python_Boa и ZoPyPhotoAlbum)
После установки продукта Photo в списке типов добавляемых в фолдер объектов появятся Photo и Photo Folder. Начните создавать Фотоальбом, добавив в свой проект объект Photo Folder.
Выберите соответствующие свойства предварительного показа изображений: Pregenerate Displays иCreate sample views. Нажмите кнопку Add и пустой Фотоальбом готов. Подготовьте файлы с изображениями для заполнения Photo Folder. Альбом включает в себя созданные при генерации средства показа, масштабирования и выбора изображений.
Сейчас можно выбрать представление Content Фото Фолдера и добавлять в Фотоальбом объекты Photo. Пример заполнения полей окна Add Photo.
Пример 1 заполненного Фотоальбома Python_Boa
После заполнения альбом готов к просмотру.
Пример 2 заполненного Фотоальбома ZoPyPhotoAlbum
5.7 Календарь событий ZooPython (страница Calendar)
6. Интерфейсы посетителя
6.0. Портал школы ZooPython (главная страница)
Добро пожаловать В Zope. Мы собрали некоторые примеры прикладных программ. Они показывают простые свойства Zope. Вы можете исследовать, как эти прикладные программы работают, рассматривая их в management interface. Если захотите добавить дополнительные примеры приложений к этой совокупности, пишите нам. Наслаждайтесь!
· Книга посетителей
· Корзина покупок
· Библиотека Файлов
· План автоматической навигации
· Школьный буфет PythonZope
· Дерево навигации PythonZope
Вы можете удалить папку ZooPythonSite, если пожелаете. Вы Может также перезагрузить примеры, импортируя файл import/ZooPythonSite.zexp или ZooPythonSiteN.zexp.
6.1. Навигатор школы ZooPython (страница Navigation)
/ZooPythonSite
План автоматической навигации
Этот пример показывает, как устроить простое автоматическое передвижение. Поcмотрите в папке Navigation как оно организовано. Автоматически созданные ссылки на этой странице позволяют Вам обходить совокупность папок и под-папок.
Текущая папка: План автоматической навигации
Родительские Ссылки
Ссылки, которые Вы видите в верхней части страницы, называются breadcrumbs. Они показывают Вам, где Вы находитесь на сайте и позволяют Вам передвигаться по дереву сайта. Они созданы Python сценарием breadcrumbs.py
Порождённые Ссылки
Эти автоматически обновляемые ссылки позволяют Вам углубляться в Сайт. Cсылки созданы выражением Python в Page Template. Можно также использовать скрипт Python чтобы создать ссылки.
Можно настраивать эти ссылки, чтобы показались только некоторые под-папки, вместо вывода всех под-папок.
· Птицы
· Млекопитающие
· Рептилии
Соседние Ссылки
Этот план передвижения позволяет Вам переходить к соседним папкам. Соседняя папка - та, которая находится в том же самом родителе, что и текущая папка. Список соседей сгенерирован сценарием siblings.py.
· Книга посетителей
· Корзина покупок
· Библиотека Файлов
· Школьный буфет PythonZope
· Дерево навигации PythonZope
6.2. Вспомогательный навигатор школы ZooPython (свёрнутая страница Teachers)
Страница Teachers в развёрнутом виде
6.3. Книга посетителей (страница GuestBook)
Книга посетителей
Пример показывает, как создать простую книгу посетителей.
Книга посетителей сохраняет записи как файловые объекты в папке Entries. Эта страница отображает записи циклом по сортируемому списку посещений и показывает каждое. Список посещений создан скриптом getEntries. Скрипт formatEntry форматирует каждую запись в книгу посетителей. Чтобы удалить запись, удалите файл из папки Entries. Альтернативная версия этого приложения могла бы использовать методы ZSQL, чтобы сохранить записи книги посетителей в реляционной базе данных.
Шаблон addEntry.htmlпредоставляет форму, которая позволяет Вам отметиться в книге посетителей. Форма обрабатывается скриптом addEntry. Скрипт addEntryсохраняет запись как файл. Скрипт имеет proxy роль "manager", которая позволяет сценарию создавать файл независимо от полномочий пользователя.
Запишитесь в книгу посетителей
Записи
By Anonymous 2004/11/11 | Первое посещение разработчика web-сайта книги посетителей школы PythonZope |
By nig 2004/11/11 | Посетитель 07.11.04 имеет номер 3 |
By Anonymous 2004/11/11 | Комментарий первого, но не самого первого посетителя. |
By Amos 2004/11/11 | Это - пример комментариев. Они могут содержать много строк текста. Обратите внимание, что Вы <blink>не можете</blink> включать HTML в ваши комментарии, так как HTML заключается в кавычки. Эта запись в книге посетителей сохранена в файле с именем entry_0 в папке Entries. Чтобы редактировать запись, просто редактируйте такой файл. Вы можете также удалить запись, удаляя файл. |
Рис. Форма записи в книге посетителей addEntry.html
6.4 Библиотека Файлов (страница FileLibrary)
Библиотека Файлов
Пример создания простой библиотеки файлов. Он показывает пакетирование и сортировку. Вы можете нажимать на имя столбца, чтобы сортировать файлы. Если Вы нажимаете дважды на столбец, то файлы сортируются в обратном порядке. Если Вы передаете больше чем восемь файлов, то результаты будут разбиты на более чем одну страницу. Назовём это пакетированием.
Файлы размещены в папке Files. Скрипт getFiles возвращает сортируемый список файлов. Скрипты getLink и getSize делают небольшие задачи форматирования представлений гиперссылок и размеров файлов. Пакетирование выполнено в шаблоне index_html. Шаблон также использует функцию test, чтобы назначить различные классы CSS для элементов, в зависимости от условий. Это относится к тому, как выведется сортируемое имя столбца – полужирным, а альтернативные строки таблиц, сделаны серыми.
Файлы
ID | Type | Size | Last Modified |
example.html | text/html | 197 bytes | Nov 11, 2004 8:22 am |
example.txt | text/plain | 28 bytes | Nov 11, 2004 8:23 am |
Загрузка файлов
Вы можете добавлять файл в библиотеку, передавая его из вашего локального компьютера. Сценарий addFile принимает файл, передаёт, и создаёт новый файловый объект в папке Files. Затем он возвращает страницу с подтверждением. Сценарий addFile имеет полномочия роли "manager", которая позволяет ему добавлять файл независимо от полномочий пользователя.
6.5 Школьный буфет (страница BuffetPyZope)
Школьный буфет PythonZope
Добро пожаловать В школьный буфет ZooPython. Выбирайте блюда по доступной цене и устраивайтесь за столиком. Наслаждайтесь!
- Буфет
Если Вам не понравилось блюдо, можно отказаться от него. Оставьте запись в книге посетителей, и мы учтём Ваши пожелания.
Буфет
Этот пример показывает, как использовать сессии. Обратите внимание, что Zope помнит содержание вашего стола, пока Вы не закрываете ваш браузер.
Содержание стола сохранено в сессии. Переменная сессии items хранит след из идентификаторов элементов и количеств элементов вашего стола. Скрипт currentItems использует эту информацию, чтобы отыскать записи, описывающие пищевые элементы вашего стола. Скрипт deleteItems удаляет элементы со стола.
Ваш буфетный столик
В настоящее время нет никаких элементов на вашем столе.
Добавить блюда
Item | Description | Price | Quantity |
Зелёный чай | Лучшее средство от склероза. | $1.00 | |
Бутерброд с красной икрой | Икра - ценный белковый продукт, полезный и вкусный. | $10.00 | |
Салат из крабов | Свежие дальневосточные крабы доставлены самолётом. | $15.75 | |
Скрипт addItems добавляет элементы к вашему столу. Вышеупомянутая форма использует записи, чтобы сформировать упорядоченный список для сценария. Каждый элемент в упорядоченном списке имеет поле id и quantity.
6.6 Фотоальбом “Фото Python” (страница ZoPyPhotoAlbum)
Выбор изображений по гиперссылке на названии для дальнейшего просмотра в подходящем масштабе
Навигатор фотоальбома “Фото Python”
Сейчас возможно масштабирование изображения в шести вариантах.
6.7 Календарь событий ZooPython (страница Calendar)
Неделя декабря 2004
Январь 2005
7. Руководство разработчика
Ассортимент портируемых объектов для разработки Web-сайта.
Экспортные файлы *.zexp устанавливаются для импорта в каталог
C:\Program Files\WebSite\import\
Этот каталог используется Zope в процессе импорта объектов в ZODB. Пожалуйста поместите любые файлы для импорта непосредственно в этот каталог. Импорт начинается после нажатия кнопки Import/Export внутри выбранного фолдера. Имя файла указывается вместе с расширением zexp в начинающемся после этого диалоге импорта.
Портал школы ZooPython
id объекта: ZooPythonSite
В файлах ZooPythonSiteN.zexp находятся портируемые версии Web-сайта. Здесь N - номер версии проекта.
Масштабируемый объект портала содержит переносимые и встраиваемые объекты. Последние могут монтироваться самостоятельно, комбинированно или путём контейнерных вложений.