2016-02-23 44 views
0

我想爲我的新項目使用Django REST框架,但我不確定是否可以高效地完成它。我希望能夠在我的API中輕鬆集成經典的Django應用程序。但是我不知道如何繼續讓他們尊重REST框架哲學。我是否必須重寫所有視圖或是否有更合適的解決方案?如何在Django REST框架中使用經典的Django應用程序?

+0

將DRF視爲您應用程序當前的'views.py'和模板的機器友好型替代方案。粗略地說,視圖將模型渲染爲HTML。 DRF將模型渲染爲JSON,XML和其他機器友好的格式。 DRF不會取代您的常規視圖。 –

+0

看看這個:http://www.django-rest-framework.org/如果你打算使用REST API,那麼是的,你可能想擺脫你的觀點,或者至少重新設計它們,但這取決於他們的樣子。無需發佈代碼片段,回答起來太寬泛 – fodma1

+0

如果您想保持傳統觀點,請使用'tastypie'。 – xyres

回答

1

「正常」Django視圖(通常)返回HTML頁面。

Django-Rest-Framework視圖(通常)返回JSON。

我假設你正在尋找更像是單頁面應用程序的東西。

在這種情況下,您將擁有一個主視圖,它將成爲HTML頁面的主體。這將從「標準」Django視圖返回HTML(可能包含一些JavaScript)。

頁面加載後,JavaScript代碼將向DRF視圖發出請求。因此,當您與頁面交互時,JavaScript將請求Json,並基於JSON的內容更新(不重新加載)頁面。

這有道理嗎?

+0

是的,我正在尋找一個單頁的應用程序。我用Javascript和Json得到了重點。但我的問題仍然存在(抱歉,如果它不清楚):我想在我的API中使用django消息(https://github.com/arneb/django-messages/tree/master/django_messages)。這個應用程序不是爲DRF設計的,因爲它提供了經典視圖和模板標籤。我是否必須將所有視圖重新編碼爲DRF視圖才能將Json提供給我的應用程序? – Kowalsy

+0

如果不知道你想達到什麼的更多細節,很難說(但我懷疑你會需要重寫所有內容)。您似乎將其視爲一種或另一種情況,您可以輕鬆地從同一應用程序中同時處理普通HTML視圖以及DRF json。 –

+0

很明顯,模板標籤在json中不會有任何用處。但我想他們對於包含JavaScript的頁面的HTML部分有意義。 –