2010-12-08 63 views
3

我現在正在尋找一種'最佳實踐'的方式來爲我的Django安裝創建具有多個站點&子域的特定結構。最佳實踐 - Django multisite

我想了解以下信息:

/靜態 /全球 - 全球JS - 全局CSS, - 等。 /特定 - 特定JS - 等。

/django - 包含所有特定的django文件 /apps - 包含所有應用程序 /site1 - .py文件 - spec IFIC應用程序(鏈接到/ Django的/應用程序/應用程序) - 其他網站的特定文件 /站點2 - .py文件 - 特定應用(鏈接到/ Django的/應用程序/應用程序) - 其他網站的特定文件 /子域。站點2 - .py文件 - 特定應用(鏈接到/ Django的/應用程序/應用程序) - 其他網站的特定文件

我覺得上面是比較合理的,讓所有的網站,並在還有一個更低的方式子域彼此分離。 我知道這是'最佳做法',但一些(關鍵)建議,將不勝感激;)

+0

你打算從一個域登錄並在不同的網站管理的東西呢? – 2010-12-08 20:03:50

回答

1

我認爲這取決於你將如何建立和部署你的多域「網站」。 Django有網站框架:http://docs.djangoproject.com/en/dev/ref/contrib/sites/ 它可以讓你實現你提到的「新聞文章共享」。

但是,如果您希望所有這些進程都使用一個進程(使用mod_wsgi,例如每個進程都有一個虛擬主機項),那麼部署多域django並不重要,如果您有多個域,則這可能會成爲問題/子域。

對於部署的Django的標準方式,每一個Django項目(每個域)都會有自己的的virtualenv(或共享的,如果他們使用相同的庫),以及所有圖書館應用將駐留在蟒蛇virtualenv的路徑。

項目應該是自包含的,所以你將不得不,例如:

PROJECT1

--coreapps/projectspecificapps ...

--templates/

--media/

--sett ings.py

--urls.py

- 管理。PY

項目2

--coreapps/projectspecificapps ..

--templates/

--media/

--settings.py

- urls.py

--manage.py是項目之間共享應該從項目分開,應該是它自己的APP,Python路徑上的任何地方(在virtualenv中例如內部)

什麼。

對於許多域/子域......它是一個完全不同的故事。您可以讓django使用django中間件處理域部分(或者也許是一個wsgi中間件? - 可能有一個使用wsgi的有趣解決方案),並且您必須讓您的應用程序,模板等...域「知曉「不知何故,這在某種程度上取決於你的具體需求。

http://www.b-list.org/weblog/2006/sep/10/django-tips-laying-out-application/

Django and project/application organization

,並期待在流行的應用程序,看看他們是如何使用的: http://djangopackages.com/