Django RestApi - API和Webbackend之间的分离

时间:2015-10-30 11:21:39

标签: django django-rest-framework

在我的项目中,我使用django-rest-framework将REST API添加到我的网页。

可以在同一个django实例上运行所有内容吗? 或者Api和Webbackend的分离是更好的方法吗?

THX!

2 个答案:

答案 0 :(得分:1)

不,没有理由将常规后端和REST API分成两个实例。正如您希望他们使用相同的模型和相同的数据库后端。一个好的做法是在你的根urls.py

中添加一个新的url前缀/ api /
api_urlpatterns = patterns('',
    url(r'^myapp/', include('myapp.api.urls')),
    ...
)


urlpatterns = patterns('',
    url(r'^api/', include(api_urlpatterns, namespace='api')),
    ...
)

使用api的命名空间,您可以轻松避免API网址与标准视图之间的冲突。它也使得更容易理解代码:

reverse('api:mymodel-list')

答案 1 :(得分:0)

这主要取决于你的目标。

在大多数情况下,将两者放在同一个实例上都可以。

在某些情况下,如果网站/ API设置不同,您可能不会这样做。例如,如果您有许多仅用于站点部分的中间件,并且需要一个经过良好调整的API用于演出。

请记住,网站和API的不同实例需要托管和集成/ devops /管理时间。