среда, 7 сентября 2016 г.

Устранение ошибок при импорте определений Dexterity контент-типа

При импорте схемы и описания типа для контент-типа, созданного в "Dexterity Content Types"  окна установок сайта следует вносить изменения в файлах продукта. Изменения приведены для случая импорта контент-типа Man.
1.В файле types.xml  в строке изменил значение name на значение, начинающееся с заглавной буквы
2. Удалил комментарий в строке 5
3. В файле схемы, помещенном в каталог modls man.xml удалил свойство model_source и установить свойство model_file:

my.app.models:man.xml

среда, 6 ноября 2013 г.

четверг, 3 октября 2013 г.

установка collective.easytemplate

При установке возникает ошибка:
"
File "/opt/plone/hosted/src/collective.easytemplate/collective/easytemplate/browser/portlets/configure.zcml", line 7.1-16.10
   
"
Для исправления заменить  регистрацию портлета в egg/
collective.easytemplate/collective/easytemplate/browser/portlets/configure.zcml
на:
    
    
             name="collective.easytemplate.TemplatedPortlet"
         interface=".interfaces.ITemplatedPortlet"
   assignment=".templated.TemplatedPortletAssignment"
         view_permission="zope2.View"
         edit_permission="cmf.ManagePortal"
         renderer=".templated.TemplatedPortletRenderer"
         addview=".templated.TemplatedPortletAddForm"
         editview=".templated.TemplatedPortletEditForm"
         />    

воскресенье, 15 сентября 2013 г.

темы для выступлений

 Студентам четвертого курса рекомендуется сделать выбор пакета и подготовить  выступление об его использовании.

Использование пакета PyGame в разработке компьютерных игр.
Использование языка Python в программе 3D моделирования Blender. Моделирование и рендеринг 3D объектов.
Использование языка Python в программе 3D моделирования Blender. Игровой движок Blender Game Engine.
Разработка веб-приложений на framework Django
Использование библиотеки Tkinter при разработке графических приложений
Использование Python Imaging Library в работе с растровой графикой
Обработка сетевых данных с использованием языка Python
Стандартная библиотека Python. Пакеты, модули, функции
Использование языка Python в современных программных продуктах
Использование пакета NumPy для решения прикладных задач в математике и информатике
Использование библиотеки SciPy для решения прикладных задач в математике и информатике
Python: вычисление сложных математических функций
Математические пакеты SymPy, NumPy, Matplotlib, Dislin.
Использование Paste Script  для создания шаблонов веб-приложений
Пакет IPython - интеллектуальная консоль
Программа buildout - кнфигуратор пакетов расширения
VPython - программа  моделирования 3D- миров
Пакет  ptah - программирование Java Scripts на Python
Pyramid  — программный каркас (фреймворк) для разработки веб-приложений
Google App Engine - программирование в облаке Google
SQLAlchemy —  программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM.
Virtualenv - создания виртуального окружения  для программного проекта

среда, 27 марта 2013 г.

Создание файловой библиотеки

Файловая библиотека создается загрузкой файлов в выбранный фолдер Plone. Для этого находясь внутри фолдера нужно создать  новый объект типа "Файл", дать ему имя и указать файл для загрузки. Для обслуживания библиотеки нужно создать пользовательский интерфейс, частной задачей для которого будет операция поиска файла с указанным идентификатором. ля этого в ZMI в папке custom создайте объект типа Script(Python) c содержимым:
request=container.REQUEST
id_file=request['file_item']
files = context.portal_catalog.searchResults(portal_type = 'File', id=id_file)
file = files[0].getObject()
data = file.get_data()

Строка 2 скрипта: производится получение значения переменной с ключем file_item из объекта request.Предполагается, что эта переменная уже есть в REQUEST после вызова сответствующей формы или передачи параметра  через GET-запрос.
Строка 3 скрипта: производится получение выборки из portal_catalog по запросу поиска
Строка 4 скрипта: предполагаем что  файл с нужным идентификатором существует. В этом случае выборка, представляющая собой список ссылок на найденные объекты, будет содержать только один элемент. С помощью метода getObject() преобразуем ссылку в реальный объект, представляющий нужный файл в Plone.
Строка 5 скрипта: получаем содержимое файла.
Получение значений, записанных в файл, зависит от структуры записей. Как минимум, нужно разбить содержимое файла на строки, а затем получать данные из каждой строки. Способы решения этой задачи неоднократно обсуждались на занятиях.