這裏是Two Scoops of Django: Best Practices For Django 1.6報價:凡把REST API在Django
在過去,我們把所有的API視圖代碼到一個專門的Django應用程序 調用的API或apiv1,與定製邏輯中的一些REST視圖, 序列化器等等。理論上這是一個很好的方法,但在 的實踐中,這意味着我們對某個特定應用程序的邏輯不止在一個位置上。
我們目前的方法是依靠URL配置。當建立一個 項目範圍API我們寫的REST的看法在
views.py
模塊,電線 它們放入一個所謂的URLconf像core/api.py
或core/apiv1.py
,包括從項目的根的urls.py
模塊。這意味着,我們可能會有諸如以下 代碼:
# core/api.py
""" Called from the project root's urls.py URLConf thus:
url(r" ˆ api/", include("core.api"), namespace="api"),
"""
from django.conf.urls.defaults import patterns, url
from flavors import views as flavor_views
from users import views as user_views
urlpatterns = patterns("",
# {% url "api:flavors" %}
url(
regex=r" ˆ flavors/ $ ",
view=flavor_views.FlavorCreateReadView.as_view(),
name="flavors"
),
# {% url "api:flavors" flavor.slug %}
url(
regex=r" ˆ flavors/(?P<slug>[-\w]+)/ $ ",
view=flavor_views.FlavorReadUpdateDeleteView.as_view(),
name="flavors"
),
# {% url "api:users" %}
url(
regex=r" ˆ users/ $ ",
view=user_views.UserCreateReadView.as_view(),
name="users"
),
# {% url "api:users" user.slug %}
url(
regex=r" ˆ users/(?P<slug>[-\w]+)/ $ ",
view=user_views.UserReadUpdateDeleteView.as_view(),
name="users"
),
)
但我不明白的地方放core/api.py
。這是一個單獨的Django應用程序,名爲core
? api.py
應該坐哪裏?
這意味着創建上面的文件爲'core/api.py'(以及一個空的'core/__ init __。py'),然後添加'url(r「api /」,include(「core。 api「),namespace =」api「)''urls.py'根文件 – Anentropic 2014-11-24 18:57:44
您不必將其稱爲'core/api.py',這只是作者 – Anentropic 2014-11-24 18:58:20
@Antropic的建議,非常感謝。只需添加它作爲答案,我可以接受它。另外,我們在views.py模塊中編寫REST視圖是什麼意思?我能舉一個例子嗎? – norbertpy 2014-11-24 19:00:51