2011-08-04 31 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

這種方法的好處是,你可以過渡無論你想要什麼速度。缺點是它不是一個簡單的配置,菊花鏈本質上是脆弱的,並且菊花鏈可能會斷裂。