fbpx

Как правильно организовать модели в связке MongoDB\Tornado и какой шаблонизатор лучше выбрать?

293 просмотра
0
0 Комментариев

Перед нашей командой поставили задачу сделать большой, масштабируемый проект.Проект решили делать на Tornado+MongoDB. Для работы с MongoDB используем mongolite который ставится поверх pymongo. Если примерно, то суть проекта такая : кто-то создает набор форм для заполнения данных и назначает их определенным группам юзеров. Юзер заполняет форму и сохраняет ее. Дальше третьему типу юзеров, показывается статистика, которая собирается из данных связанных с каждой формой.

Некоторые сценарии работы и модели, могут менятся в течении реализации. поэтому еще одной из задач, которые мы перед собой ставим, является использовать гибкие решения.

Для начала решили сделать внутренний api.
Сейчас у нас примерно так выглядит решение:

  • описывается модель, в ней статические методы для создания сущностей, и внутр. методы для того,чтобы отдать инфу по объекту
  • в метод api всегда передается user, который проверяется декоратором на наличие прав вызывать этот объект
  • если все ок, то там выполняется какая-то логика, например вызывается статич. метод какого-нибудь класса который создает нужный объект и он возвращается данной api-функцией
  • в обратотчиках url’oв (в основном в get-ах и постах) уже используются необходимые api-функции при реализации бизнес-логики
  • Рендрится необходимая страница

Какой шаблонизатор лучше взять?
В первом релизе упора на GUI не будет, однако в следующем релизе, такую задачу скорее всего перед нами поставят.

Интересно было бы узнать про чужой опыт разработки в этой связке.


Добавить комментарий

1 Ответы

Python Опубликовано 20.03.2019
0

Что-за шаблонизатор?

Что бы хотите шаблонизировать?

Чем вам стандартный, торнадовский шаблонизатор не угодил? (http://www.tornadoweb.org/documentation/template.html)

сравнение шаблонизаторов.

Python 2.6.2 on a 3GHz Intel Core 2
 
Kid template                         696.89 ms
Kid template + cElementTree          649.88 ms
Genshi template + tag builder        431.01 ms
Genshi tag builder                   389.39 ms
Django template                      352.68 ms
Genshi template                      266.35 ms
ElementTree                          180.06 ms
cElementTree                         107.85 ms
StringIO                              41.48 ms
Jinja 2                               36.38 ms
Cheetah template                      34.66 ms
Mako Template                         29.06 ms
Spitfire template                     21.80 ms
Tenjin                                18.39 ms
Spitfire template -O1                 11.86 ms
cStringIO                              5.80 ms
Spitfire template -O3                  4.91 ms
Spitfire template -O2                  4.82 ms
generator concat                       4.06 ms
list concat                            3.99 ms
generator concat optimized             2.84 ms
list concat optimized                  2.62 ms

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up