首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Django配置为在PyISAPIe上在IIS7上运行

将Django配置为在PyISAPIe上在IIS7上运行
EN

Server Fault用户
提问于 2010-10-15 20:19:33
回答 1查看 840关注 0票数 0

我已经成功地将PyISAPIe配置为从一个运行在IIS7上的新网站上运行Python代码(例如,一个简单的hello世界),但我不太清楚如何在相同的环境中启动和运行Django。

有没有人对如何在这两者之间建立最终的联系有任何建议?

这是一个简单的测试服务器,所以我甚至不需要处理多个实例。我只想在'/‘运行这个站点的一个实例。

以下是我的整个isapi.py文件:

代码语言:javascript
复制
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的等价物。

EN

回答 1

Server Fault用户

发布于 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所需的几乎所有内容。有魔力的台词如下:

代码语言:javascript
复制
from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
os.environ["DJANGO_SETTINGS_MODULE"] = "myapp.settings"

您只需要确保您的项目和Django本身都在您的PYTHONPATH中,并且您可以导入项目的设置。

然后只需将PyISAPIe urls设置为"/“,如下所示:

代码语言:javascript
复制
Apps = {
  "/"  : lambda P: RunWSGI(DjangoHandler()),
}

那么Django urlconf就会像预期的那样工作。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/191494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档