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

Зачем избегать CGI для Python с хостом LAMP?

Я использую PHP в течение многих лет. В последнее время я столкнулся с многочисленными сообщениями на форуме, в которых говорится, что PHP устарел, что современные языки программирования проще, безопаснее и т.д. И т.д.

Итак, я решил начать изучать Python. Поскольку я привык использовать PHP, я только начал создавать страницы, загрузив файл .htaccess с помощью

addtype text/html py
addhandler cgi-script .py

Затем мои образцы страниц выглядят так:

#!/usr/bin/python
print "content-type: text/html\n\n"
print "html tags, more stuff, etc."

Это прекрасно работает. Но я столкнулся с комментарием в сообщении, в котором говорилось, что CGI не лучший способ использовать Python. Конечно, в нем не упоминалось, что является лучшим способом.

Почему использование CGI не лучший способ использовать Python? Какая альтернатива?

Есть ли какой-нибудь другой способ, чтобы создать простой сайт Python? Есть ли какая-то совершенно другая парадигма, которую я должен смотреть за пределами файлов .htaccess и .py?

Связанные

4b9b3361

Ответ 1

Классический CGI - это не лучший способ использовать что-либо вообще. С помощью классического сервера CGI создайте новый процесс для каждого запроса.

Что касается Python, у вас мало альтернатив:

Ответ 2

Почему использование CGI не лучший способ использовать Python?

Я немного задержусь за CGI. Это хорошо для среды разработки.

Прост в подключении, и вам не нужно беспокоиться о проблемах перезагрузки модуля. Естественно производительность ужасна, но для dev вам все равно.

Конечно, вы действительно должны писать на интерфейс WSGI, а не непосредственно CGI. Затем вы можете развернуть через CGI, используя:

wsgiref.handlers.CGIHandler().run(application)

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

Ответ 3

mod_wsgi является подходящей альтернативой. Это предпочтительнее всего CGI практически во всех аспектах.

Ответ 4

На самом деле это просто эффективная вещь. CGI порождает целый новый процесс для каждого запроса, который достаточно тяжелый для того, что он делает.

PHP также может запускаться через CGI, но mod_php внедряет интерпретатор в apache. Там mod_python, который выполняет ту же работу, и mod_wsgi как говорит Юваль.

Ответ 5

Помимо предложений, сделанных другими, вы должны действительно рассмотреть использование какой-либо структуры. Вы можете и должны использовать FastCGI, mod_python или mod_wsgi, но они на самом деле не предназначены для того, чтобы вы могли напрямую писать код. Могу я предложить одно из следующего?

  • django (мой любимый для практических приложений)
  • pylons
  • cherrypy (мой любимый для не-практических приложений)
  • web.py

Ответ 6

В документации Python есть страница, которая описывает преимущества и недостатки различных возможностей.

mod_python

(...) Вот почему mod_python следует избегать при написании новых программ.

WSGI

Интерфейс шлюза веб-сервера или В настоящее время WSGI является лучшим возможный путь к веб-сайту Python программирование. Хотя это отлично подходит для программисты, создающие основы, нормальному человеку не нужно прямой контакт с ним.

FastCGI и прочее

В наши дни FastCGI никогда не используется напрямую.