2014-02-18 139 views
8

我是相當新的都Django和角度。我認識到這是主觀的,可能有很多方法可以做到,但我想知道人們可以推薦哪些最佳實踐來佈置這樣的應用程序。我特別想到富人SPA的情況,後端主要還是完全是一個RESTful API服務器,但是我想爲所有從Django提供重要視圖的應用程序採用通用的方法。 (我還沒有做足夠的事情來決定後者是否使用Angular或者可能比它的價值更麻煩)。最佳實踐應用程式

具體做法是:

什麼是從後端對,比如說保持前端代碼在一個單獨的目錄/倉庫,Django的應用程序的「靜態」子目錄中的優點/缺點?就我而言,我是現在唯一的開發人員,這對這個決定有一定的影響,但我仍然可以認爲自己是後端,前端,設計師等的獨立「團隊」,因爲我的工作流程將會一次讓我參加這些角色之一。

我的設置基本上是一個開發機,SCM在GitHub上,並在WebFaction(共享虛擬主機)公開舉行。我希望能夠輕鬆地在不同的開發機器上抓取項目,但主要工作流程僅僅是一個開發人員,一個產品安裝。也就是說,我對真實項目中的最佳實踐感興趣,因爲我希望今後的工作可能與Django合作。

ADDED:我很不確定的另一點是Angular應用程序是否應該/必須由Django引導。也就是說,是否應該由Django提供頭版並注入任何數據?

優點:

  • 可以配置URL路徑和從開發變爲生產甚至API端點,而沒有任何可替換的配置和在沒有這些被硬編碼在前端。
  • 這可能是認證所必需的嗎?我不清楚已經沒有這樣做還...
  • 允許使用像Django的調試工具欄應用程序的工具。

缺點:

  • 全部前端到後端。如果我想換掉後者呢?如果我希望前端在模擬數據的沙箱中工作,該怎麼辦?
  • 似乎非常有利於移動所有角的東西到Django應用程序的佈局。同時,我不喜歡在一個地方混合使用Angular部分,而在另一個地方使用Django模板。我已經決定不要將NG和DJ模板混合在一起,因爲我不相信這會帶來太好的結果。

回答

2

我也是作爲獨立開發人員在Django上擔任的,因爲他們是AngularJS FE。我已經把AngularJS文件放在靜態文件夾中,一切都很好。

缺點肯定是你有FE和在一個項目混在一起,但我認爲不應該的問題,因爲你是個人開發者。即使你決定聘請額外的開發人員(分解FE和BE工作),你的工作也不會有任何衝突,因爲你們中的一個人完全獨立工作。

其中的利弊,我絕對是我通過做Django的整個登錄過程(模板也一樣),一旦登錄了罰款I服了FE(整個AngularJS部分)的其餘部分。

對於Django REST我使用了TastyPie。 Django的REST增強功能非常好,而且易於設置。

+0

謝謝Slaven。我想知道,你的意思是通過Django應用程序中的Angular應用程序來促進通過Django進行登錄過程,還是說這兩個框架非常合適?如果前者,我不清楚爲什麼會這樣。 –

+1

不,整個登錄過程是通過Django完成的(根本沒有AngularJS),如果用戶登錄,我服務於FE應用程序(例如,是AngularJS應用程序的index.html)。順便說一句,我看到你提到:「我已經解決了不混合NG和DJ模板」,除了登錄屏幕,你不會有任何Django模板,如果你喜歡,你也可以刪除它。如果你打算使用AngularJS作爲FE,那麼應該在那裏完成所有工作,並且只對REST API使用Django。 (我欺騙了一下,並用它來登錄過程以及) –

+0

啊,我想我遵循。 index.html這裏是一個靜態文件,還是一個Django視圖?我饒有興趣地說,當用戶將任何URL加入應用程序時,Django基本上將它們路由到登錄頁面,除非它們已經登錄,而Angular應用程序基本上不會「知道」這個。正確? –