пятница, 14 сентября 2012 г.

Python Pyramid

Python Pyramid - это система управления контентом (CMS), написанная на языке Python. Она построена на основа фреймворка TurboGears 2 и использует SQLElixir в качестве прослойки для работы с СУБД.

Дя установки Pyramid требуется Python не ниже 2.5, несколько пакетов Python (включая TurboGears 2) и СУБД, например, MySQL или PostgreSQL.

Установка Python Pyramid в вируальном окружении

Создаем виртуальное окружение для Pyramid

virtualenv pyramid_env

(в документации к Pyramid рекомендуют по другому "virtualenv --no-site-packages env" - нопод Windows 7 64-бит такая команда вызвала кучу ошибок. Но под FreeBSD 8.1 64-бит - сработала именно такая команда, которая с Windows не получилась.)

Переходим в каталог витруального окружения:

cd "C:\Python27\pyramid_env\Scripts"

Устанавливаем в этом виртуальном окружении Pyramid:

easy_install.exe pyramid

В каталоге "C:\Python27\pyramid_env\Lib\site-packages\" видим, что Pyramid для работы нужно очень много чего:

chameleon-1.2.13-py2.7.egg
easy-install.pth
mako-0.3.6-py2.7.egg
markupsafe-0.11-py2.7.egg
paste-1.7.5.1-py2.7.egg
pastedeploy-1.3.4-py2.7.egg
pastescript-1.7.3-py2.7.egg
pip-0.8.1-py2.7.egg
pyramid-1.0b1-py2.7.egg
repoze.lru-0.3-py2.7.egg
setuptools-0.6c12dev_r88124-py2.7.egg
setuptools.pth
translationstring-0.3-py2.7.egg
venusian-0.6-py2.7.egg
webob-1.0.1-py2.7.egg
zope.component-3.10.0-py2.7.egg
zope.configuration-3.7.2-py2.7.egg
zope.deprecation-3.4.0-py2.7.egg
zope.event-3.5.0_1-py2.7.egg
zope.i18nmessageid-3.5.3-py2.7-win-amd64.egg
zope.interface-3.6.1-py2.7-win-amd64.egg
zope.schema-3.7.1-py2.7.egg

Проверка правильности работы Pyramid без базы данных

Создаем новый каталог, переходим в него, устанавливаем в этот каталог шаблон "pyramid_starter" из поставки Pyramid. Для этого запускаем утилиту "paster" из виртуального окружения:

C:\Python27\pyramid_env\Scripts\paster.exe create test -t pyramid_starter

Появляется каталог "test", содержащий готовый дистрибутив приложения. Само приложение находится в подкаталоге "test\test".

Заходим в каталог "test". Готовим приложение к развертыванию:

C:\Python27\pyramid_env\Scripts\python.exe setup.py develop

При этом скачиваются и устанавливаются недостающие пакеты Python.

Затем запускаем веб-сервер:

C:\Python27\pyramid_env\Scripts\paster.exe serve development.ini

Видим, что веб-сервер стартовал и ждет нас на порту 6543

В браузере набираем http://127.0.0.1:6543 и видим страницу с уведомлением: "Welcome to test, an application generated by the Pyramid web application development framework" и ссылками на документацию по Pyramid.

Проверка правильности работы Pyramid с базой данных SQLite

Заходим  в пустой каталог.

Создаем приложение, готовое к развертыванию командой:

C:\Python27\pyramid_env\Scripts\paster.exe create test2 -t pyramid_alchemy
Появляется каталог "test2"
Переходим в каталог "test2".

По умолчанию приложение созданное из шаблона "pyramid_alchemy" сконфигурировано для работы с базой данных "sqlite3".

Готовим приложение к работе:

C:\Python27\pyramid_env\Scripts\python.exe setup.py develop

Заметно, что при этом много пакетов скачивается, в частности, SQLAlchemy.
C:\Python27\pyramid_env\Scripts\paster.exe serve development.ini

Дожидаемся сообщения, что веб-сервер стартовал. Смотрим на каком порту и (на том же что и первое веб-приложение "test"). Запускае браузер и заходим на страницу.

Различие в том, что на странице есть ссылка "test" под полем ввода для поиска. Жмем на ссылку и получаем ответ, сгенерированный на основе данных, хранимых в базе данных.

Приложение "test2", созданное из шаблона "pyramid_alchemy", изначально сконфигурировано для работы с базой данных "SQLite". Меняем в конфигурации базу данных на PostgreSQL.

Сначала с помощью входящей в состав PostgreSQL утилиты pgAdmin III создаем базу данных "testdb" и пользователя "user" с паролем "password" и правом модернизировать структуру базы данных.

Прописываем базу данных "testdb" в файле "development.ini", исправив строчку, где указана база данных типа sqlite на такую:

sqlalchemy.url = postgresql+psycopg2://user:password@127.0.0.1:5432/testdb

Здесь написано, что база данных называется "testdb", которая обслуживается сервером PostgreSQL. SQLAlchemy будет получать доступ к базе данных через адаптер psycopg2.

Запускаем веб-сервер:

C:\Python27\pyramid_env\Scripts\paster.exe serve development.ini

Проверяем через браузер.

Python Pyramid работает.


Комментариев нет:

Отправить комментарий