2011-08-04 43 views
0

是否有一种直接的方法可以将Django设置为可以在其他类型的内容上运行的目录或目录集?在“混合”目录中运行Django

现在我有一个网络服务器是主要运行ColdFusion页,但我想开始到Django的移动某些部分。但是,由于现有的目录结构,将所有Django内容放在一个Web路径中并不理想。理想情况下,我希望能够继续使用原始的目录结构,而不必使用大量的重定向。

有没有什么办法让Django的发挥好其他事情呢,还是非常需要它自己的根要快乐?我能想到的唯一的另一个解决方案就是在必要的时候用许多规则有目的地避开Django(例如,指示它手动处理任何带有文件扩展名的内容,或者忽略某些目录)来仔细配置Web服务器。

这将在IIS上,如果它发生。

+0

您是否需要管理用户?动态内容?如果是这样,哪个系统将负责用户和数据库的交互?如果两个系统都与数据库进行交互,他们是否需要同步,或者您能够在单独的孤岛中操作它们? – Ted

+0

@Ted:它可能很聪明,特别是如果登录位于ColdFusion端,为Django写一个auth插件,如果ColdFusion说这是“isAuthenticated()”。有点迂回,但我已经做到了。 –

+0

是的,我将不得不以某种方式建立跨站点身份验证。用户可能会由现有的传统(ColdFusion)系统进行管理。事实上,如果我正在处理动态内容,会更容易。问题在于有很多静态内容由于各种原因无法移动到CMS,所以它必须静态地提供服务。 –

回答

0

无论如何,您都可以在Django中配置网址。看看URL dispatcher。因此,比如说您的网站www.example.com,您决定使用Django开发/维基和/博客。您可以将IIS配置为将这些URL重定向到Django,而www.example.com/everythingelse的其余部分则由Coldfusion或其他任何服务器提供。

甚至一个混合的URL方案说/存储/ mycoldfusion产品视图和/商店/ django产品视图将是可能的,虽然这将需要一定数量的花式重定向代码取决于您的设置。

+0

我该如何设置?到目前为止,我一直在Linux机器上使用带有Apache httpd的WSGI,并且在所有这些情况下,项目只有一个入口点('/')。 –

+0

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango – arunkumar

+0

对不起,我不清楚。我的意思是在**过去**中,我已经使用modwsgi设置了所有内容。但**现在**我将使用IIS,在Django集成方面我不太熟悉。显然,我不能使用modswgi与IIS。 –

0

听起来好像你对什么时候服务有一定的控制。如果是这样的话,你可以使用反向代理来分割你的名字空间吗?我做了很多不同的项目。我使用nginx,并告诉它“这些路径适用于Wordpress,这些路径适用于Django,这些路径适用于图像和其他静态内容。”

这使得Django的一个很好的方式“发挥不错,”只要你有纪律的方式把一些路径,以一种或另一种。

+0

我应该仔细观察IIS标签。虽然有一个Windows的Nginx。 –

+0

我认为从IIS切换到nginx会变得非常困难。 –

+0

对不起,如果我不清楚。您不会运行nginx而不是IIS,您可以与IIS一起运行。我在端口8000,8001等上运行我的appservers,并在端口80上运行Nginx。它根据其配置中指定的条件(通常是关于所请求的HTTP路径)将HTTP请求转发给给定的端口。 –

0

另一种设置方法是菊花链: Webserver - > django - >响应中间件 - > subprocess/pipe/httplib - > coldfusion。

响应中间件将伪代码是这样的:如果 在response.code [ok的响应列表]: 回报 其他: 调用的ColdFusion

这种方法的好处是,你可以过渡无论你想要什么速度。缺点是它不是一个简单的配置,菊花链本质上是脆弱的,并且菊花链可能会断裂。