Django视图函数中使用request提示未定义报错该如何解决?
错误根因
- Django视图函数默认第一个位置参数为框架传入的HTTP请求对象,你当前的视图函数参数仅声明了
*args, **kwargs,没有将第一个参数显式命名为request,调用request变量时自然会触发未定义报错。 - 你导入的
requests是第三方发请求的工具库,和Django内置传入视图的请求对象完全无关,自然不存在Django请求对象特有的META属性,不需要额外安装任何第三方库。
解决方法
将两个视图函数的第一个参数显式命名为request即可,修改后的代码如下:
from django.http import HttpResponse from django.shortcuts import render # Create your views here. def home_view(request, *args, **kwargs): return render(request, "home.html", {}) def contact_view(request, *args, **kwargs): return HttpResponse("<h1>contact page</h1>")
如果后续不需要用到可变参数,也可以直接删掉*args, **kwargs,简化为def home_view(request):的写法,功能不受影响。
内容的提问来源于stack exchange,提问作者thatfridgemagnet
相关产品推荐
相关产品推荐

