繁体   English   中英

页面未找到-错误(404);获取请求; django-python

[英]PAGE NOT FOUND- ERROR(404);GET request; django-python

最近我一直在尝试在 django-python 中使用 GET 请求。 但是,当我这样做时遇到了 404 错误。 我想让程序打印给它的参数。

URL 图案:

path('add<int:hello>/',views.add,name = 'Add')

意见.PY:

def add(request,num1):
    val1 = request.GET["num1"]
    return HttpResponse(request,"Hello")

我在浏览器上搜索的内容:

http://127.0.0.1:8000/add?1
http://127.0.0.1:8000/add?hello=1

这应该工作。 您还需要添加查询参数名称。

要获得您需要使用此代码的值:

request.GET["hello"]

这里有几件事很奇怪或损坏。


给定path('add<int:hello>/', views.add, ...) , Django 期望 function views.add具有以下签名:

def add(request, hello):

模式'add<int:hello>/'需要带有“add”后跟 integer 的 url,例如:

 http://127.0.0.1:8000/add1 http://127.0.0.1:8000/add2 http://127.0.0.1:8000/add3...

等等。


request.GET["num1"]期望在其查询字符串中包含num1=...的网址,例如:

 http://127.0.0.1:8000/add1?num1=...

HttpResponse需要一个字符串类型作为它的第一个参数,而不是发布代码中的HttpRequest类型。

解决问题

这可能接近你想要的,它会起作用:

path('add<int:num1>/', views.add, name='Add')

def add(request, num1):
    return HttpResponse(f"Hello {num1}")

# visit http://127.0.0.1:8000/add1

另一种变化:

path('add', views.add, name='Add')

def add(request):
    num1 = request.GET['num1']
    return HttpResponse(f"Hello {num1}")

# visit http://127.0.0.1:8000/add?num1=123

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM