Вопрос для начинающего Python о создании веб-приложения - PullRequest
2 голосов
/ 17 ноября 2010

Я совершенно новичок в Python - никогда не использовал его до сегодняшнего дня. Я заинтересован в разработке приложений Python для Интернета. Я хотел бы проверить, поддерживает ли мой веб-сервер WSGI или работает ли приложение Python каким-либо образом.

Допустим, у меня есть файл .py, который печатает «Hello world!». Как я могу проверить, поддерживает ли мой сервер обработку этого файла?

К вашему сведению, это сервер Mac OS X 10.5. Итак, я знаю, что Python установлен (по умолчанию он установлен в Mac OS X), но я не знаю, настроен ли он для обработки файлов .py на стороне сервера и возврата результатов.

Кстати, я родом из PHP, так что это немного чуждо мне. Я посмотрел документы на python re: wgsi, cgi и т. Д., Но поскольку я еще ничего конкретного не сделал, это не совсем понятно.

Ответы [ 3 ]

5 голосов
/ 17 ноября 2010

Очень простое WSGI-приложение может выглядеть следующим образом:

def application(environ, start_response):
    start_response('200 OK', [('content-type', 'text/html')])
    return ['Hello world!']

К сожалению, если вы поместите это в helloworld.py на сервере, а затем перейдете к URL / helloworld.py, вы, скорее всего, увидитеcode.

Как правило, вам нужно добавить очень специфические параметры конфигурации на сервер (или в файл конфигурации сервера), чтобы он правильно обслуживал ваше приложение python.Учитывая, что вы используете mod_wsgi в Apache 2, конфигурация может выглядеть следующим образом:

<VirtualHost *>
    ServerName example.com
    WSGIScriptAlias /server/location/address /path/to/helloworld.py
</VirtualHost>

Где / server / location / address - это конечная точка URL-адреса, по которому вы должны перейти.

Это связано с тем, что Python WSGI перехватывает все переданные ему URL-адреса и отправляет их в одну и ту же точку входа (метод / класс вашего приложения).А из информации, полученной в параметрах, приложение должно решить, какую страницу вернуть.

Поскольку эта информация зависит от конкретного приложения, «должен» быть способ настроить ее на сервере, однако мне еще не приходилось сталкиваться с панелью настройки веб-хостинга, которая позволяет настраивать приложения Python.Как правило, это означает, что вам нужно связаться с администраторами сервера и попросить их настроить его для вас.

Однако, как правило, когда вы регистрируетесь на хостинг, у компании обычно есть страница, на которой они сообщают вам, что именно поддерживаетсяих серверы (обычно: php, mysql) и сколько места и пропускной способности вам разрешено.Таким образом, если они не размещают его на своем сайте, весьма вероятно, что они его не поддержат.

Чтобы обойти это, вместо этого вы можете купить VPS (виртуальный частный сервер), а затем настроить его так, как хотите.

2 голосов
/ 17 ноября 2010

Если вы новичок в разработке Python и веб-приложений на Python, не обращайте внимания на все проблемы с хостингом, а не начинайте с нуля. Просто найдите полнофункциональную веб-среду Python, такую ​​как Django или web2py, и узнайте, как писать веб-приложения Python, используя встроенный веб-сервер разработки. Вы только причините себе большую боль, если попытаетесь сначала решить особую проблему производственного веб-хостинга.

1 голос
/ 17 ноября 2010

Сначала прочтите это.

Как веб-фреймворки Python, WSGI и CGI сочетаются друг с другом

Затем пересмотрите свой вопрос, чтобы конкретно отозвать вещи, которые вы еще не обнаружили.

Прочитав это, перечитайте часть о том, что mod_wsgi является одним из нескольких способов, которыми Apache может запускать Python.

Перечитав эту часть, перечитайте часть о том, как Python можно запустить как cgi скрипт.Это еще один из нескольких способов, которыми Apache может запускать Python.

Перечитав все это, пожалуйста, пересмотрите вопрос, чтобы объяснить, какая часть конфигурации Apache смущает вас.

Не можете найти mod_wsgi?Вы не можете найти mod_cgi?Пожалуйста, уточните, какие части конфигурации Apache смущают вас.

...