Мне удалось настроить PyISAPIe для запуска кода Python (например, простого hello world) с нового веб-сайта, работающего на IIS7, но я не могу понять, как запустить Django в той же среде.
Кто-нибудь, у кого есть советы о том, как наконец установить связь между ними?
Это простой тестовый сервер, поэтому мне даже не нужно возиться с несколькими экземплярами. Я просто хочу запустить один экземпляр сайта в '/'.
Вот мой весь isapi.py
файл:
import os
import sys
from Http.WSGI import RunWSGI
from Http import Env
from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
sys.path = [
'c:\parlour\site',
'c:\parlour\site\lib',
'c:\parlour\site\project'
] + sys.path
os.environ["DJANGO_SETTINGS_MODULE"] = 'project.settings'
Base = '/'
Exclude = ['/media']
def Request():
PathInfo = Env.PATH_INFO
if not PathInfo.startswith(Base):
return True
for Excl in Exclude:
if PathInfo.startswith(Excl):
return True
return RunWSGI(DjangoHandler(), Base=Base)
Я думаю, что самая большая проблема, с которой я столкнулся, - это понимание того, как PyISAPIe знает, как выполнить файл, указанный выше. С Apache вам нужно включить WSGIScriptAlias / /path/to/mysite/apache/project.wsgi
. Я не вижу эквивалента PyIASPIe, хотя, скорее всего, я упускаю из виду что-то очевидное.
Невозможно запустить Django любым способом, который добавляет .py в конец ваших URL-адресов.
Каковы ваши доводы в пользу отказа от встроенного сервера разработки Django? Он работает достаточно хорошо в большинстве сред и работает сразу после установки без дополнительной настройки?
PyASPIe не рекомендуется для запуска Django под IIS, но поскольку он реализует интерфейс WSGI, я бы сказал, что вам следует начать с этого. Вы пробовали использовать пример конфигурационного файла WSGI, который включает немного информации о django?
http://sourceforge.net/apps/trac/pyisapie/browser/Trunk/PyISAPIe/Python/Examples/WSGI/Isapi.py
В качестве побочного примечания, это, вероятно, плохой способ запустить сервер разработки, поскольку вам, вероятно, придется перезагружать сервер каждый раз, когда вы вносите изменения в свой код Python. Это лишь одна из многих причин использовать встроенный в Django сервер разработки.
Редактировать:
Насколько я могу судить, конфигурация содержит почти все, что вам нужно для запуска Django. Линии, которые творит чудеса, следующие:
from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
os.environ["DJANGO_SETTINGS_MODULE"] = "myapp.settings"
Вам просто нужно убедиться, что ваш проект и сам Django находятся в вашем PYTHONPATH и что вы можете импортировать настройки своего проекта.
Затем вам просто нужно установить URL-адреса PyISAPIe на «/», например:
Apps = {
"/" : lambda P: RunWSGI(DjangoHandler()),
}
Тогда ваш URL-адрес Django должен работать должным образом.