在我的项目中,我使用django-rest-framework将REST API添加到我的网页。
可以在同一个django实例上运行所有内容吗? 或者Api和Webbackend的分离是更好的方法吗?
THX!
答案 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 /管理时间。