Подтвердить что ты не робот

Является ли Tornado заменой Django или они дополняют друг друга?

У меня есть несколько вопросов о Tornado и других веб-фреймворках.

1) Торнадо утверждает, что является веб-сервером (неблокирующим, поэтому очень эффективным), поэтому некоторые люди сказали, что он не играет роль django - они говорят, что торнадо не является веб-картой.

Однако он действительно создает веб-фрейм, который я думаю (http://www.tornadoweb.org/documentation#main-modules) - таким образом, похоже, что django заменяет веб-разработки.

Правильно ли это мое понимание?

2) Обычно за Nginx устанавливаются несколько Tornados. Tomcat также обычно настраивается за веб-сервером Apache. Могу ли я сказать, что Tornado играет ту же роль, что и Tomcat для веб-сервера Java? Если да, то Tornado - это веб-фреймворк.

3) Я прочитал статью о том, что, используя Tornado и Django вместе, например http://www.jeremybowers.com/blog/post/3/on-deploying-tornado-web-server-framework/, я прочитал статью в Интернете, в которой утверждается, что "если вы используете Django, то вы теряете асинхронный от Tornado", это правда или ложь? Связанный с этим вопрос, хотя, если Tornado сам является веб-каркасом, как я сказал в 1), почему люди вообще не используют Django? (чтобы получить плагин?)

Может кто-нибудь дать мне 101 введение?

4b9b3361

Ответ 1

Чтобы ответить на вопрос,

  • НЕТ, Торнадо не является заменой Django. Это альтернатива.

  • ДА, они дополняют друг друга, но не в одном и том же процессе (*)

Я бы использовал Django, когда он работал с большими командами и/или должен работать в базе данных SQL.

Я бы использовал Tornado для всего остального. То есть. личные проекты, приложения, связанные с WebSocket, приложения, которые используют сервер NoSQL.

(*) не беспокойтесь о запуске django внутри торнадо или наоборот, если у вас действительно нет сильного требования к этому.

Ответ 2

  • Tornado - это веб-сервер и веб-каркас по большинству определений, но это довольно минимальная структура (по сравнению с Rails или Django). Модули Tornado слабо связаны, поэтому можно использовать только компонент веб-сервера (или даже только цикл IO нижнего уровня). По сравнению с Django существует много областей, где Tornado не обладает такой функциональностью. Например, в "Торнадо" нет абстрактной абстракции, вам нужно сворачивать самостоятельно.

  • Когда вы запускаете приложение Tornado за Nginx, это приложение работает - Nginx просто прокси-сервер к нему. Я считаю, что Tomcat - это сервер приложений, отличный от вашего приложения. Я бы не назвал Tomcat веб-картой.

  • Django не является асинхронным, поэтому обычно приложение блокируется при использовании компонентов Django. Это не может быть большой проблемой, это зависит от того, что вы делаете. Разработчики Tornado заявили (сильно перефразируя), что для большинства приложений наибольшая победа происходит от не блокирования, ожидая клиента, то есть веб-браузера. Например, блокировка базы данных не является большой проблемой, если вы быстро выполняете свои запросы.

Есть много плюсов и минусов как для Django, так и для Tornado, и есть много альтернатив для обоих - это определенно не просто выбор между ними. Здесь очень быстрый список того, почему вы, возможно, захотите использовать Django:

Плюсы для Django:

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