Django视图函数获取URL参数报错,如何修正代码?
解决Django视图函数获取URL参数的报错问题
嘿,我一眼就瞅出问题所在啦!你在视图函数的参数定义里写了<int:id>,这可是Django URL配置里的路径转换器语法,不能直接放到视图函数的参数里用的~
错误原因
视图函数的参数只需要接收参数名称就行,<int:>是告诉Django“把这个位置的URL片段转成整数类型”的规则,这个规则只在urls.py里生效,视图里直接用参数名id就好。
修正后的代码
你的urls.py是没问题的,不用改动。只需要修改views.py里的视图函数:
from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt from .models import Users # 别忘了导入你的Users模型哦 @csrf_exempt def data(request, id): # 这里直接写id,去掉<int:>前缀 # 注意:如果你的Users模型里是用id字段匹配,这里可以改成filter(id=id),根据你的实际模型结构调整 results = Users.objects.filter(user=id) print(results) return HttpResponse('<h1>OK</h1>')
验证效果
现在你访问http://127.0.0.1:8000/data/3时,Django会自动把URL里的3作为整数类型的id参数传递给视图函数,控制台就能正确打印出对应的数据啦~
内容的提问来源于stack exchange,提问作者user9341676
相关产品推荐
相关产品推荐

