2015-10-21 49 views
1

我見過一些關於這個主題的問題,但我仍然沒有找到我正在尋找的答案。Angularjs集成到Django項目與API

實現AngularJS應用程序與django進行交互的正確方法是什麼?

據我瞭解這個計劃想:

  1. 使用Django的RESTful開發一些API。它將可用於例如 /API/V1 /不管/應用
  2. 權分離AngularJS代碼將與API從步驟1
  3. 做魔術互動:Django是可用的Django的路由器從/開始。 AngularJS頁面應該如何加載到客戶端?我應該編寫額外的TemplateView以允許客戶端上的angularjs部分加載/?整個網址如何(例如/ post /將被路由)?據我所知在angularjs中有單獨的路由器。它應該在Web服務器部分分離嗎?例如。/api是由nginx處理到Django和/處理爲靜態加載角?

我需要使用django-angular嗎?看起來好像它會更好,如果角度將不會被集成到Django模板中,它將被完全分開。是這樣嗎?

也許這有點混在我腦海裏。雖然我沒有找到相關的解釋here

+0

如果您將使用Django來構建API,您只需要使用端點,您只需要從API返回JSON對象並使用您的AngularJS應用程序中的數據在前端。您可以將SPA或任何其他結構用於AngularJS應用程序,當然,還可以使用AngularJS路線。在架構中,Django是一個數據提供者。 – Gocht

回答

3

我一直在使用Django的REST框架和AngularJS成功,以及如何繼承人我已經做到了:

  1. 即成AnguarJS從www.yourdomain.com靜態文件。這是用nginx或apache輕鬆完成的 。
  2. 接下來,通過api.yourdomain.com訪問Django Rest Framework,這也是一個簡單的配置。

你也可以讓Django提供靜態文件(AngularJS),但我認爲它是一種不必要的複雜方法。

如果您實施此解決方案,請注意跨CORS錯誤。當您的angularJS(來自www.yourdomain.com)嘗試從另一個域(api.yourdomain.com)訪問服務(Django Rest Framework)時,會發生這種情況。 這個問題很容易通過幾行額外的服務器配置修復(nginx example