2010-07-07 16 views
4

我開始玩Django構建。我想使用buildout作爲部署項目和應用程序的主要安裝方法。在這種情況下,每個應用程序包含buildout和項目是最好的嗎?你應該在什麼級別應用構建?Django構建

感謝,

託德

+1

如果你還不知道它,這可能對你很有趣:http://python.mirocommunity.org/video/1689/pycon-2010-django-deployment-w – 2010-07-07 08:45:17

+0

備案:我添加了buildout標籤。 – 2010-07-07 09:32:22

回答

4

我通常設置它的方法是這樣的:

buildout_dir/ 
    + bootstrap.py 
    + buildout.cfg 
    + ... 
    + <project_name>/ 
     + settings.py 
     + templates/ 
     + media/ 
     + ... 

由於擴建是(對我來說)往往依賴於一個單一的項目,無論如何,我只是將django項目直接存儲在構建中。順便說一下:我在我的構建配置中使用了djangorecipe

我編寫的應用程序是簡單的雞蛋有這個樣的佈局:

django-<app_name>/ 
    + setup.py 
    + <app_name>/ 
     + __init__.py 
     + models.py 
     + ... 

但我也看到,是一個自包含的應用程序擴建。 Jacob Kaplan-Moss甚至還有wrote an article about it

+0

嘿謝謝,我不知道視頻。它在我的必看清單上正確。 感謝您的澄清。這是你最後一線,我掛斷了,無論應用程序應該是雞蛋還是自己建立。但我想我會走雞蛋的路。 – 2010-07-07 09:55:57

+0

哇,上漲速度有點慢,但有點不幸的是,djangorecipe選擇指向現有Django項目的選項叫做projectegg。我花了很多時間才弄明白,我只需要將Django項目直接粘貼到buildout目錄中(但這又是一個答案)。相反,我試圖弄清楚如何將雞蛋下載到buildout目錄中。 – 2010-07-14 11:56:21

1

我一直有在項目(網站)的根至少兩/三擴建CONFIGS:

/ 
|- buildout.cfg # contains bas configuration used by other cfg files 
|- development.cfg # adds ton of eggs used only in development and generates manage script using djangorecipe 
|- production.cfg # most of the time it contains versions and generates django script using djangorecipe 
1

對於我來說,我給每一個應用程序,每個項目擴建。該項目的建設是爲了建立網站。包括:

  • ,如果你想運行一個單獨的gunicorn左右產生阿帕奇/ nginx的配置文件(collective.recipe.template)

  • 也許是一個cronjob

  • 也許主管。

每個應用程序也有一個buildout。這裏的目標是讓設置一個獨立的環境變得更容易,尤其是測試。您永遠不需要部署應用程序,只需將其設置爲運行開發服務器並運行測試即可。

對我來說,構建是隔離(如virtualenv)加上安裝(像pip)加上項目自動化。你將主要使用前兩個應用程序。所有這三個網站。

1

我總是爲每個項目創建一個構建,以獲取所有需要的依賴關係。這可以是簡單的雞蛋,但也從內部依賴git(集線器)使用mr.developer

我沒有看到需要有每應用程序擴展。對每個django設置配置(例如開發,生產等)都有一個匹配的buildout.cfg可能會很好。

構建僅適用於項目文件夾,依賴項將自動包含(並且可以自定義使用mr.developer )。

也包括bootstrap.py在我看來有點老套;我總是運行virtualenv + pip install zc.buildout。這也可以在項目文件夾本身上完成,或者在外部完成(例如,〜/ virtualenvs/myproject-123)