WSGI не является фреймворком, и при этом вам не нужно выбирать его - это стандартный способ запуска любой фреймворк веб-приложений Python на любом веб-сервере, поддерживающем Python, включая CGI. Если у вас есть приложение WSGI с именем app
и вы хотите запустить его на CGI, см. документы и используйте wsgiref.handlers.CGIHandler().run(app)
, как говорят документы.
Итак, вы можете прекрасно использовать Стакан через WSGI (поверх CGI) - например, возьмите пример в документах Бикера и просто добавьте (необходимый импорт и) run
вызов выше (с использованием объекта wsgi_app
, который создается в этом примере, плюс, конечно, session.save
и такой же необходимый, как, опять же, документы Beaker объясняют сразу после этого).
У богатых или тяжелых фреймворков есть свое место, но так же как и у легких, гибких компонентов, таких как Beaker - и промежуточное программное обеспечение WSGI - отличный способ использовать такие компоненты, не требуя каких-либо "framework-y" соглашений, просто старый добрый WSGI (поверх CGI или что-нибудь еще).
Кстати, лучший способ запустить WSGI на IIS может быть isapi-wsgi (я могу сказать только «может», потому что у меня нет установки IIS, на которой можно было бы его протестировать ;-). Но до тех пор, пока вы кодируете в WSGI (с любой средой или вообще без нее), это будет только оптимизацией - ваше приложение не изменится (за исключением того, какой обработчик run
или эквивалентный метод вам нужно вызвать; - ) работает ли он на CGI, IIS через ISAPI, Google App Engine или на любой другой комбинации сервер-интерфейс