我已经成功地将PyISAPIe配置为从一个运行在IIS7上的新网站上运行Python代码(例如,一个简单的hello世界),但我不太清楚如何在相同的环境中启动和运行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的等价物。
发布于 2010-10-15 20:35:35
不可能以任何将.py附加到urls末尾的方式运行Django。
对于避免在Django开发服务器中内置的内容,您的理由是什么?它在大多数环境中都运行得很好,而且无需进一步配置就可以立即工作?
PyASPIe并不是让Django在IIS下运行的推荐方法,但是由于它确实实现了WSGI接口,所以我认为您应该从它开始。您是否尝试过示例WSGI配置文件中的内容,其中包括一些关于django的内容?
http://sourceforge.net/apps/trac/pyisapie/browser/Trunk/PyISAPIe/Python/Examples/WSGI/Isapi.py
顺便提一句,这可能是运行dev服务器的糟糕方法,因为每次更改python代码时,您都可能不得不重新启动服务器。这只是使用Django在dev服务器中构建的许多原因之一。
据我所知,配置确实包含了运行Django所需的几乎所有内容。有魔力的台词如下:
from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
os.environ["DJANGO_SETTINGS_MODULE"] = "myapp.settings"您只需要确保您的项目和Django本身都在您的PYTHONPATH中,并且您可以导入项目的设置。
然后只需将PyISAPIe urls设置为"/“,如下所示:
Apps = {
"/" : lambda P: RunWSGI(DjangoHandler()),
}那么Django urlconf就会像预期的那样工作。
https://serverfault.com/questions/191494
复制相似问题