[英]How to pass url value in django to views
我的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')
在上面的代码中,如果我确实在浏览器中使用下面的网址进行请求,则它到达了我的get_request方法,
http://localhost:8080/myapp/get_requests/
但是当我尝试如下所示的ID时,同样会出现错误404,
http://localhost:8080/myapp/get_requests/40
现在如何在我的views.py方法中获取此ID号40?
将您的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文档
如果您想从网址中获取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来拾取对象。
上面的代码中,视图函数名称中有一个错字。 因此,它将是get_requests
而不是get_request
。
现在问您的问题,它会引发“ 404 - Not Found
因为您定义的实际路由中没有在URL后应包含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
,定义view函数以接受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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.