Форум сайта python.su
Здравствуйте.
Некоторое время назад я начал писать для веба с использованием питоновских фреймворков. В процессе этого у меня выработался некий набор постоянно применяемых подходов и представлений о том, чего именно хочется мне от фреймворков.
Также недавно я наткнулся на Tornado, и, надо отметить, он пришелся мне очень по душе из-за своей минималистичности и скорости. Что мне не понравилось - отсутствие в его составе даже в упрощенном виде нескольких полезных возможностей, к которым я привык в Django и Pylons.
В итоге у меня родилась небольшая библиотечка, в которой я реализовал часть того, что мне хотелось и чем я постоянно пользуюсь.
Основная идея библиотеки - активное использование абстрактных интерфейсов, миксинов, коллбэков и хуков. И главное - динамически загружаемые компоненты, для подключения которых вообще не требуется правки уже существующих исходников. Идея модулей была мною почерпнута из одного проекта, мелькавшего на ЛОРе.
Библиотеку можно условно разделить на три части:
1) Ядро, обеспечивающее загрузку модулей и разрешение их зависимостей
2) Стандартные сервисы - настройки, логгирование, пул процессов, посредники для работы с СУБД
3) Набор расширений для Tornado: сессии, генератор URL (на данном этапе примитивный), вынесение тяжелых задач в процессы
Отдельно можно отметить, что библиотека сама по себе никак не завязана на Tornado и даже на веб.
Также я планирую добавить поддержку других фреймворков. Так, например, будет очень интересно запускать поверх Tornado WSGI-фреймворки, благо такая возможность в Tornado есть, но пользоваться при этом преимуществами, которые дает мой модульный подход.
Сейчас я потихоньку документирую и дописываю код.
Документация лежит тут.
Исходники библиотеки с демкой тут.
Код, пожалуй, довольно грязный. Если мои идеи будут кому-то интересны - сделаю его чище и лучше.
Прошу конструктивной критики.
За английский сильно не пинайте, за указание на ошибки буду благодарен.
Если кто-то захочет применить библиотеку у себя или принять участие в разработке, буду очень рад.
Офлайн
Актуально :) Пока правда сильно не смотрел, но sqlalchemy и асинхронный режим работы с ней радует.
Офлайн