пятница, 4 декабря 2009 г.

Werkzeug + SQLAlchemy + Jinja2 + Memcached = Маст трай

Да, да, да! Дошли таки руки! Django отложен в темный ящик, так как мне нужна бОльшая гибкость. Да и админка не нужна совсем в том проекте, который делаю (секрет :-).

Хорошо, что перед встречей с werkzeug я поковырялся с GAE Python (сделал нечто вроде блога). Это помогло мне сделать этакий фреймворк для обработки запросов.
К примеру сделал свой базовый класс Controller. Это объект с response и request классами внутри.

Куски класса:
class Controller():
    def __init__(self, request):
    def get(self): #вызывается при get-запросе
    def post(self): #вызывается при post-запросе
    def render_template(self, template, **context): #так вызывается шаблонизатор
    def preprocess(self): # дергается в конце инициализации. сюда можно навесить декоратор для проверки прав доступа
Кроме того, Controller при каждой инициализации создает в себе объект self.current_user - думаю понятно что это :-)

Еще очень обрадовал шаблонизатор:
- он кэширует шаблоны! (т.е. хранит их в своем пре-компилед виде).
- макросы (можно загружать из файла)

Отдельно помучался с апачем + wsgi. Но как обычно - документация спасает.

П.С.: просто надоел зависающий IIS6