在 Django rest 框架中获取 URL 其余参数的正确方法
correct way to obtain the rest of the parameters of URL in Django rest framework
大家好我正在使用 Django rest 框架创建一个 API
在我的 URLs.py 文件中我有这个
url(r'^cpuProjects/$', cpuProjectsViewSet.as_view({'get': 'list'})),
url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+)$', cpuProjectsViewSet.as_view({'get': 'retrieve'})),
这个工作完美,我有这个 url
http://127.0.0.1:8000/cpuProjects/
http://127.0.0.1:8000/cpuProjects/ad
在我的检索函数中,我用这个来获取参数
def retrieve(self, request, project_name=None):
try:
opc = self.kwargs.get(self.lookup_url_kwarg)
print(opc)
...
现在,我将其添加到我的 URLs.py 文件中
url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+/[a-zA-Z0-9]+)$', cpuProjectsViewSet.as_view({'get': 'retrieve'})),
http://127.0.0.1:8000/cpuProjects/name_project/whatever_string_here
我的 print(opc)
最后一个案例 return 这个 ad/pending
.
在Django rest framework中,这是获取URL其余参数的正确方法吗?
您将 url 的整个路径包裹在同一个正则表达式命名组中。您可以通过将尾部放在不同的组中来分隔尾部:
url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+)/(?P<status>[a-zA-Z0-9]+)$', ...),
在您看来:
def retrieve(self, request):
try:
opc = self.kwargs.get(self.lookup_url_kwarg)
status = self.kwargs.get('status')
...
大家好我正在使用 Django rest 框架创建一个 API
在我的 URLs.py 文件中我有这个
url(r'^cpuProjects/$', cpuProjectsViewSet.as_view({'get': 'list'})),
url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+)$', cpuProjectsViewSet.as_view({'get': 'retrieve'})),
这个工作完美,我有这个 url
http://127.0.0.1:8000/cpuProjects/
http://127.0.0.1:8000/cpuProjects/ad
在我的检索函数中,我用这个来获取参数
def retrieve(self, request, project_name=None):
try:
opc = self.kwargs.get(self.lookup_url_kwarg)
print(opc)
...
现在,我将其添加到我的 URLs.py 文件中
url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+/[a-zA-Z0-9]+)$', cpuProjectsViewSet.as_view({'get': 'retrieve'})),
http://127.0.0.1:8000/cpuProjects/name_project/whatever_string_here
我的 print(opc)
最后一个案例 return 这个 ad/pending
.
在Django rest framework中,这是获取URL其余参数的正确方法吗?
您将 url 的整个路径包裹在同一个正则表达式命名组中。您可以通过将尾部放在不同的组中来分隔尾部:
url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+)/(?P<status>[a-zA-Z0-9]+)$', ...),
在您看来:
def retrieve(self, request):
try:
opc = self.kwargs.get(self.lookup_url_kwarg)
status = self.kwargs.get('status')
...