slav0nic's blog

Заметки о python, linux и других занимательных вещах

web.py part #1

Итак, хочу рассказать вам про web.py, почему-то данный анти-фреймворк немного обделён в плане примеров, а про статьи на русском языке я уже молчу...

Почему я выбрал именно его?
Причин на то несколько, основные достоинства (на мой дилетанский взгляд):
1) Лёгкий и быстрый, всё интуитивно  понятно. Хотя "легкость" в сложных проектах может оказаться минусом
2) Всё что нужно (по крайней мере мне =] ) включено. Об этом напишу ниже.
3) В отличии от той же django он не задаёт стиль программирования и не "диктует правила", я могу писать и соблюдая MVC концепцию, так и нарушая её. (хотя мои познания в джанго заканчиваются на уровне прочтения туториалов для старта В) )
4) Дополнительные модули без проблем подключаются
5) Как мне кажется webpy отлично подходит для embedded систем, например для всяких nokia n700 и тп (кстати надо будет на symbian проверить В) )

Кому он может понравиться?
Думаю тем для кого вэб-программирование оканчивается на CGI скриптах(эт про меня), тем кому лень учить монстрячие фреймворки типа django и тп В)

----------------------------
Собственно о самом модуле (фреймворк слово не уместно)

Из чего состоит?

web - основной модуль (точнее пакет) который включает в себя всевозможные ф-ции работы с http, например вывод инфы, редирект, получение информации с форм и другое. При импорте  подгружаютя все нижеописанные модули.
web.cheetah - поддержка cheetah темплейтов, ничем кроме личной любви автором к данным темплейтам объяснить наличие сего не могу)
web.db - DB-API 2 модуль для работы с СУБД, подерживает sqlite, psql, mysql. Для работы требует чтоб были установлены соответствующие модули.
web.debugerror - дебаггер, в случае ошибок выводит всевозможную инфу. PS: модуль свиснут с django )) так что тут всё гламурно
web.form - модуль для создания и обработки форм, валидаторы есть! Лично мне понравилось, хотя и немного помучался)
web.http - собсвенно автоматом импортируется при подключении web, включает http ф-ции
web.httpserver - wsgi сервер, базируется на CherryPy 3.0.1, юзается для отладки скриптов, хотя можно и юзать как сервер, у меня тянул 30 запросов в секунды.
web.net - модуль для работы с IP адресами (типа валидация), работа с датой и тп.
web.template - встроенные темплейты, очень простые, но имхо юзабельные) хотя есть проблемы, которые будут исправлены в версии .0.3, например работа с юникод объектами будут автоматом энкодиться в utf-8
web.utils - вспомогательные ф-ции и типы данных
web.webapi - работа с куками, ф-ции для работы с долгоотрабатывающими ф-циями и тп

Модулей много, но реально юзаются  form, db и template.

Позже опишу пример создания простого блога (покачто там только посты добавляются %) ) для объяснения работы с базовыми модулями.
Эталоном создания приложений на данной либе заслуженно считается http://reddit.com/ , который работает  при немалых нагрузках.
Обидно лишь то, что автору лень нормально описать все ф-ции, приходится рыскать в инете в поисках примеров (ссылки потом кину)

web.py