默认Tastypie有四个Django View方法。 不考虑Resource.wrap_view方法,当一个请求进入了这几个方法,就说明我们已经从Django进入到Tastypie的世界。
1. dispatch_list
针对整个Resources列表处理各种HTTP方法(GET/POST/PUT/DELETE)。
这个方法不仅是获得resource列表的功能,而且还包含了创建一个新的Resource Item.
2. get_schema
获得Resource的Schema信息
3. get_multiple
根据URL中的ID获得序列号的Resource列表
4. dispatch_detail
针对一个单独的Resource处理各种HTTP方法(GET/POST/PUT/DELETE)
url pattern生成源码如下:
def
base_urls(
self):
"""
The standard URLs this ``Resource`` should respond to.
"""
return [
url(
r"^(?P<resource_name>%s)%s$" % (
self._meta.resource_name
, trailing_slash())
,
self.wrap_view(
'dispatch_list')
,
name=
"api_dispatch_list")
,
url(
r"^(?P<resource_name>%s)/schema%s$" % (
self._meta.resource_name
, trailing_slash())
,
self.wrap_view(
'get_schema')
,
name=
"api_get_schema")
,
url(
r"^(?P<resource_name>%s)/set/(?P<%s_list>.*?)%s$" % (
self._meta.resource_name
,
self._meta.detail_uri_name
, trailing_slash())
,
self.wrap_view(
'get_multiple')
,
name=
"api_get_multiple")
,
url(
r"^(?P<resource_name>%s)/(?P<%s>.*?)%s$" % (
self._meta.resource_name
,
self._meta.detail_uri_name
, trailing_slash())
,
self.wrap_view(
'dispatch_detail')
,
name=
"api_dispatch_detail")
,
]