Рекомендации по настройке / управлению стеком WSGI? - PullRequest
2 голосов
/ 27 октября 2009

Просматривая множество полезных и блестящих платформ Python, я не обнаружил, что ни одна из них не приблизилась к тому, что мне нужно, или не предоставила способ * на 1002 * больше, чем мои потребности. Я сам собираюсь что-то собрать; может определить его как основу, но не полный стек. Однако я не могу найти в Интернете то, что сообщество Python считает правильным / стандартным способом управления промежуточным программным обеспечением WSGI в приложении.

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

Скорее, я ищу совет о том, как сообщить Python, какие компоненты / промежуточное ПО поместить в стек и в каком порядке. Например, если я хотел использовать:
Spawning-->memento-->AuthKit-->(?)-->MyApp
как мне расположить эти компоненты в правильном порядке и как настроить дополнительный элемент (скажем, Routes) до MyApp?

Итак, Можете ли вы посоветовать общий / правильный / стандартный способ управления тем, какое промежуточное программное обеспечение включено в стек WSGI для приложения Python?

Редактировать
Спасибо Майклу Диллону за рекомендацию Do-It-Yourself Framework , которая помогает осветить мою проблему. В разделе промежуточного программного обеспечения этого документа говорится, что следует связать промежуточное программное обеспечение A в промежуточном программном обеспечении B, B в C и так далее:

app = ObjectPublisher(Root())
wrapped_app = AuthMiddleware(app)
from paste.evalexception import EvalException
exc_wrapped_app = EvalException(wrapped_app)

Что показывает, как это сделать очень просто. Я понимаю, как это работает, однако кажется, что это слишком просто при работе с рядом пакетов промежуточного программного обеспечения.

Есть ли лучший способ управлять тем, как эти компоненты промежуточного программного обеспечения добавляются в стек? Может быть, общий шаблон проектирования, который читает из файла конфигурации?

Ответы [ 6 ]

4 голосов
/ 27 октября 2009

Это то, что делает фреймворк.Некоторые фреймворки, такие как Django, довольно жесткие, а другие, такие как Pylons, облегчают смешивание и сопоставление.

Поскольку вы, вероятно, рано или поздно будете использовать некоторые из компонентов WSGI из проекта Paste, вы также можете прочитать эту статью от людей Paste о Do-It-Yourself Framework ,Я не предлагаю вам создавать собственную платформу, но эта статья дает хорошее объяснение того, как работает стек WSGI и как все идет вместе.

1 голос
/ 27 октября 2009

Какое промежуточное программное обеспечение, по вашему мнению, вам нужно? Вполне возможно, что вам вообще не нужно включать какие-либо «промежуточные» компоненты WSGI. Вы можете прекрасно собрать свободную «псевдо-платформу» из автономных библиотек без необходимости «оборачивать» приложение в промежуточном программном обеспечении.

(Лично я использую отдельную библиотеку для чтения форм, слой доступа к данным и механизм шаблонов, ни один из которых не знает друг о друге или не должен начать возиться с WSGI environ.)

1 голос
/ 27 октября 2009

Я бы сказал, что Apache / mod_wsgi, вероятно, самая «управляемая» из всех настроек, которые я использовал.

nginx / fcgi - самый быстрый, но немного головной боли.

0 голосов
/ 28 октября 2009

"это кажется слишком простым при работе с несколькими пакетами промежуточного программного обеспечения."

Насколько большое число?

Вы не будете работать с сотнями или тысячами.

Это будет (а) небольшое число (меньше дюжины) и (б) «правильный» порядок не магический.

У каждого промежуточного программного обеспечения будет очень, очень специфическая работа и очень специфические требования к тому, что должно предшествовать этому.

Это гораздо менее запутанно, чем вы думаете.

0 голосов
/ 28 октября 2009

Если вам понравился учебник Do-It-Yourself-Framework, упомянутый ранее, но вы хотите управлять этими вещами в конфигурационном файле, Paste Deploy будет очевидным ответом. (Это упоминается в руководстве, но очень кратко в самом последнем абзаце).

Кстати, это то, что использует каркас Pylons (и Turbogears 2, который также построен на Pylons).

0 голосов
/ 27 октября 2009

Мой совет - прочитать PEP на WSGI, особенно часть на промежуточном ПО . Если у вас есть вопрос о чем-либо со словами «стандарт» и «WSGI», ответ либо есть, либо вы задаете неправильный вопрос.

...