Как работает стек Python Web Application?

792
Johan

Я отчаянно читал о сервисах Python и REST, так как хочу начать изучать и создавать сервисы. Термины меня сильно смутили - мой прошлый опыт работы с веб-приложениями был ограниченным экспериментом с Apache + PHP. Исходя из этого, за последние два дня у меня был какой-то непростой момент, и я пришел к этой диаграмме, пытаясь разобраться во всем для себя.

Как работает стек Python Web Application?

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

Вопросы:

  1. Что я упустил или неправильно понял?
  2. Кажется, что веб-сервер является необязательным, по крайней мере, некоторые WSGI-серверы могут работать «автономно», но часто ли это рекомендуется только для разработки / тестирования?
  3. Есть ли серийный качественный сервер WSGI?
  4. Как насчет того, когда не используется WSGI. Люди часто рекомендуют WSGI, но если я правильно понял, это для мобильности. Меня не волнует портирование между веб-серверами / стеками / фреймворками. Устранение слоев имеет свою привлекательность. Когда не используется WSGI, как меняется изображение?
  5. Где происходит перезапись URL? Из того, что я прочитал, кажется, что это комбинация двух мест - веб-сервера и / или приложения. Если веб-сервер является лучшим местом для этого, это может создать важную зависимость от наличия гибкого и эффективного веб-сервера в стеке.
  6. Как я могу ограничить перезапись URL? Могу ли я избавиться от необходимости использовать перезапись URL, например, правильно разработав приложение? На самом деле, если бы я выбрал apache в качестве веб-сервера, из моего ограниченного понимания могло бы показаться, что можно пойти и попытаться исключить использование .htaccess - я представляю, что с выделенным сервером apache назначения можно было бы отключить. htaccess и поместите правила в основной файл конфигурации, или, возможно, оптимизируйте использование .htaccess, имея поверхностную упрощенную структуру каталогов. Это, в сочетании с отключением всех, кроме самых необходимых модулей apache, может показаться изящным решением.
  7. В настоящее время я склоняюсь к использованию web.py в качестве фреймворка, и их страница установки, кажется, поддерживает lighttpd, с которым у меня нет опыта, но, кажется, его достаточно легко освоить. Как lighttpd + web.py меняет картину?

И самый важный вопрос из всех: как насчет того, когда приложение представляет собой RESTful API? Отличаются ли ответы на вышеуказанные вопросы от службы REST API?

1
Неправильный форум SE возможно? Johan 9 лет назад 0

0 ответов на вопрос