Ограничения Торнадо и Джанго?

#django #fastcgi #wsgi #tornado

#джанго #fastcgi #wsgi #торнадо

Вопрос:

вот что я нашел, читая Справку Tornado:

Tornado поставляется с ограниченной поддержкой WSGI. Однако, поскольку WSGI не поддерживает неблокирующие запросы, вы не сможете использовать какие-либо асинхронные / неблокирующие функции Tornado в своем приложении, если вы решите использовать WSGI вместо HTTP-сервера Tornado. Некоторые функции, недоступные в приложениях WSGI: @tornado.web.asynchronous, модуль httpclient и модуль аутентификации.

OpenID (?), Но, к сожалению, он не будет работать на WSGI ?! Что это было интересно «до» чтения, что является модулем «auth«, он позволит получить доступ к Facebook или Google, это как OpenID (?)?!! итак, как заставить эту штуку работать с Django? на FastCGI?

Ответ №1:

Если вы посмотрите на микшины в модуле tornado.auth, вы увидите, что для него требуется @asynchronous decorator, который недоступен в режиме WSGI из-за синхронного характера протокола.

Было какое-то предложение добавить асинхронную поддержку в WSGI, но я считаю, что оно не увенчалось успехом. Дополнительная информация об этом:

http://mail.python.org/pipermail/web-sig/2008-May/003439.html

http://mail.python.org/pipermail/web-sig/2008-July/003545.html

Комментарии:

1. итак, WSGI с самого начала не предназначен для асинхронного, ни Django, ни Flask не могут этого сделать: (

2. @abdel Tornado само по себе может предоставить все основные инструменты, необходимые для создания любого веб-приложения, поэтому, как правило, вам не нужен какой-либо другой фреймворк или протокол для его создания и запуска.

3. @abdel на самом деле поддержка WSGI была добавлена в основном для упрощения переноса устаревших приложений с какой-либо другой платформы (например, Django и многих других) на чистый tornado…

4. но проблема в документации ?! у django есть тонны книг, у flask есть отличная интерактивная справка «все в одном», но tornado, я проверил с их веб-сайта, кажется, что они разговаривают с профессиональными (очень) парнями: (