Вопрос

Я хочу получить простой скрипт веб-страницы на Python "hello world" для запуска в Windows Vista / Apache, но попадающий в разные стены.Я использую WAMP.Я установил mod_python и модуль показывает, но я не совсем уверен, что я должен делать, например, вhttp.conf (такие вещи, как AddHandler mod_python .py либо приводит меня к ошибке "файл не найден", либо "запрещено", либо "модуль не найден" при доступе http://localhost/myfolder/index.py).Я могу получить mod_python.publisher работать, но "хочу" ли я этого / нужно ли мне это?

Кто-нибудь может помочь?

Спасибо!

Это было полезно?

Решение

Держитесь подальше от mod_python.Одна из распространенных вводящих в заблуждение идей заключается в том , что mod_python это похоже на mod_php, но для python.Это неправда. Wsgi является стандартом для запуска веб-приложений python, определенных БОДРОСТЬ ДУХА 333.Так что используйте mod_wsgi вместо этого.

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

Пример приложения Hello World, использующего cherrypy:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

application = HelloWorld()
if __name__ == '__main__':
    cherrypy.engine.start()
    cherrypy.engine.block()

Очень просто, да?Запуск этого приложения непосредственно на python приведет к запуску веб-сервера.Настройка mod_wsgi к нему это приведет к запуску внутри apache.

Другие советы

Вам не нужен mod_python для запуска кода Python в Интернете, вы можете использовать простое программирование на CGI для запуска вашего кода python, следуя инструкциям по следующей ссылке: http://www.imladris.com/Scripts/PythonForWindows.html

Это должно предоставить вам некоторые параметры конфигурации, необходимые для включения Python с CGI, а поиск в Google должен предоставить вам множество другой информации о том, как программировать на нем и тому подобное.

Mod_python полезен, если вы хотите немного более "дружественный" интерфейс или больше контроля над самим запросом.Вы можете использовать его для создания фильтров запросов и других функций для сервера Apache, а с помощью обработчика publisher вы получаете более простой способ обработки запросов веб-страниц с помощью python.

Обработчик publisher работает путем сопоставления URL-адресов с объектами / функциями Python.Это означает, что вы можете определить функцию с именем 'foo' в вашем файле python, и любой запрос к http://localhost/foo вызвал бы эту функцию автоматически.Более подробная информация здесь: http://www.modpython.org/live/current/doc-html/hand-pub-alg-trav.html

Что касается конфигурации Apache, чтобы все заработало, что-то вроде этого должно сослужить вам хорошую службу

<Directory /var/www/html/python/>
  SetHandler mod_python
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

Если у вас есть /var/www / html /, настроенный в качестве корневого каталога вашего веб-сервера, и у вас есть файл с именем index.py в каталоге python /, то любой запрос к http://localhost/python/foo следует вызвать функцию foo() в index.py или выполнить сбой с 404, если она не существует.

Добавить обработчик mod_python .py

Вы установили 'PythonHandler'?

В наши дни рассмотрите возможность использования WSGI вместо собственных интерфейсов mod-python для более широких возможностей развертывания.Либо через поддержку WSGI mod-python, либо, что может быть лучше, mod-wsgi.(CGI через eg.wsgiref также будет работать нормально, и его легко настроить в среде разработки, где вас не волнует его плохая производительность.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top