在测试Django框架POST请求方式时,程序报错如下
在确保访问安全的情况下有一下两种方式:
1、在相应html文件form代码块中添加如下代码:
<form method="post" action="/method_show/">
{% csrf_token %} <!-- 改行代码为添加部分 -->
<input type="submit" value="post方式">
</form>
但是仅仅添加这句代码,有时候并不能解决如上报错问题,至少在我测试过程中未能有效解决
那么就需要使用第二种方法
2、在相应view视图函数种添加如下代码:
# 首先在应用views.py文件中导入该方法
from django.views.decorators.csrf import csrf_exempt
# 在视图函数位置添加该装饰器
@csrf_exempt
def method_show(request):
return HttpResponse(request.method)
此时可将方法1中添加的方法注释(不注释也行)
由此变解决了代码报错问题
3、非安全方式
如下将csrf中间件代码块注释掉,也可解决上述报错问题,但是该方法不安全
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware', # 将改行注释掉 不使用即可
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]