我的url.py如下,
from myapp import views
urlpatterns = [
url(r'^myapp/get_requests/$', views.get_requests),
]
现在我的views.py如下,
@api_view(['GET'])
def get_request(request):
#How can I get request ID (base url here)?
return HttpResponse('test')
在上面,如果我在浏览器中请求url,如下所示,它到达我的get_request方法,
http://localhost:8080/myapp/get_requests/
但是当我在下面尝试使用一些ID时,同样会给出错误404,
http://localhost:8080/myapp/get_requests/40
现在如何在我的views.py方法中获取此ID号码?
答案 0 :(得分:2)
将您的urls.py更改为
from myapp import views
urlpatterns = [
url(r'^myapp/get_requests/(?P<id>[0-9]+)$', views.get_requests),
]
现在在你的视图中获取id参数
@api_view(['GET'])
def get_request(request,id):
print id
return HttpResponse('test')
有关详细信息,请查看django docs
答案 1 :(得分:0)
如果你想从网址中选择id
,你只需写下这样的内容:
@login_required
def MyFunction(request, id) :
myobject = get_object_or_404(MyModel, pk=id)
context = {
"myobject" : myobject,
}
return render(request, 'my template.html', context)
您的网址,您必须添加url(r'^myapp/get_requests/(?P<id>\d+)/$', views.get_requests),
我认为你的网址是正确的,而且他已经在id
里面创建了。所以我给了你如何根据这个ID拿起物品。
答案 2 :(得分:0)
上述代码中的视图函数名称中存在拼写错误。因此,get_requests
不是get_request
。
现在回答您的问题,它会引发您404 - Not Found
,因为您没有确定应该在网址后面的ID的实际路线。
要开始接受ID,请在urls.py
中为其添加另一条路线,其中包含数字重复文字:
from myapp import views
urlpatterns = [
url(r'^myapp/get_requests/$', views.get_requests),
url(r'^myapp/get_requests/(?P<id>\d+)$', views.get_requests_with_id),
]
并在views.py
中,定义视图函数以接受id
参数,如下所示:
@api_view(['GET'])
def get_requests_with_id(request, id):
# Now use id for whatever you want
return HttpResponse('test')
您可以在此处阅读官方文档:https://docs.djangoproject.com/en/1.11/topics/http/urls/#named-groups