我在这里关注DJango休息框架教程:
并且,在文件末尾添加一个模式以包含可浏览API的登录和注销视图。
urlpatterns += patterns('',
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
)
它说:
r'^ api-auth /'模式的一部分实际上可以是你的任何URL 想用。唯一的限制是所包含的网址必须使用 'rest_framework'命名空间。
我不明白为什么会这样,即。为什么字符串“api-auth”无关紧要,它似乎正常运行正则表达式中的任何字符串XXXX
答案 0 :(得分:1)
就像你r'/admin'
无关紧要。在一般意义上,它只是字符串的映射a,将url请求与基于类或函数的视图相匹配。从概念上讲,它与下面的字典相同:
{
'add': lambda x, y: x + y,
'subtract': lambda x,y: x - y
... ect. ...
}
除Django外,key
,add
和subtract
是正则表达式网址格式,'SomeView.as_view()'
是lambda
个函数。像这样:
{
r'^about/$': TemplateView.as_view(template_name='pages/about.html'),
r'^admin/': include(admin.site.urls)
}
当您include('rest_framework.urls')
将Django Rest-Framework
自己的网址格式映射到视图时,就像上面的内容一样。你可以把它想象成一个嵌套的词典:
{
r'^about/$': TemplateView.as_view(template_name='pages/about.html'),
r'^admin/': {
r'^about/$': TemplateView.as_view(template_name='pages/about.html'),
r'^admin/': include(admin.site.urls)
}
}
有关django如何处理请求的更多信息,请参阅django docs here。