我设法configurationPyISAPIe运行在IIS7上的一个新网站运行Python代码(例如,一个简单的Hello世界),但我不知道如何让Django在同一个环境中运行。
任何人有任何提示如何使这两者之间的最终联系?
这是一个简单的testing服务器,所以我甚至不需要打扰多个实例。 我只想在'/'上运行一个站点的实例。
这是我的整个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的等价物,尽pipe我很可能忽略了一些明显的东西。
以任何将.py添加到您的url末尾的方式运行Django是不可能的。
你为什么避免build立在Django开发服务器上? 它在大多数环境中工作得很好,可以在没有进一步configuration的情况下正常工作。
PyASPIe不是Django在IIS下运行的推荐方式,但是由于它实现了一个WSGI接口,所以我认为你应该从这个开始。 你有没有尝试在例子WSGIconfiguration文件,其中包括有关django的东西?
http://sourceforge.net/apps/trac/pyisapie/browser/Trunk/PyISAPIe/Python/Examples/WSGI/Isapi.py
作为一个方面说明,这可能是一个糟糕的方式来运行开发服务器,因为你可能不得不重新启动服务器,每次你在你的Python代码进行更改。 这只是使用Django内置的开发服务器的许多原因之一。
编辑:
据我所知,这个configuration确实包含了你运行Django所需的一切。 做魔术的线是这些:
from django.core.handlers.wsgi import WSGIHandler as DjangoHandler os.environ["DJANGO_SETTINGS_MODULE"] = "myapp.settings"
你只需要确保你的项目和Django本身在你的PYTHONPATH中,并且你可以导入你的项目的设置。
然后,您只需要将PyISAPIeurl设置为“/”即可:
Apps = { "/" : lambda P: RunWSGI(DjangoHandler()), }
然后你Django的urlconf应该按预期工作。