Python CSRF令牌';在Django中s值不变
我是Django框架的新手 我使用django创建了一个简单的算术应用程序 正如django文档中所建议的,我写道Python CSRF令牌';在Django中s值不变,python,django,python-3.x,Python,Django,Python 3.x,我是Django框架的新手 我使用django创建了一个简单的算术应用程序 正如django文档中所建议的,我写道 {% csrf_token %} 在我的模板文件中 但是,我注意到的是, post请求时令牌值未更改 每次显示相同的值,有效期为364天 所以,让我知道在每个post请求中更改CSRF令牌值的设置 提前谢谢 我的模板代码如下 django中的CSRF与用户登录会话()绑定,当用户注销或其登录会话结束(会话持续时间可以更改)时,令牌将在下次用户登录时更改,至于更改CSRF过期持续时
{% csrf_token %}
在我的模板文件中
但是,我注意到的是,
post请求时令牌值未更改
每次显示相同的值,有效期为364天
所以,让我知道在每个post请求中更改CSRF令牌值的设置
提前谢谢
我的模板代码如下
django中的CSRF与用户登录会话()绑定,当用户注销或其登录会话结束(会话持续时间可以更改)时,令牌将在下次用户登录时更改,至于更改CSRF过期持续时间,不建议如本文所述。我发现此答案对于RequestContext很有用。
<form action="{{ action }}" method="post">
{% csrf_token %}
<fieldset>
<legend>{{ tag }}:</legend>
Number 1: <input type="text" size="10" name="num1" value="{{ n1|default:0 }}"><br>
<span> {{ operator }} </span><br>
Number 2: <input type="text" size="10" name="num2" value="{{ n2|default:0 }}"><br>
<span> = </span><br>
Result : <input type="text" size="10" value="{{ res|default:0 }}" disabled>
<span>{{ warning|default:'' }} </span><br><br>
<input type="submit" size="10">
</fieldset>
</form>
<a href="/app1">App1 Home</a>
def add(request):
warn = ''
res, n1, n2 = (0, 0, 0)
try:
n1 = int(request.POST['num1'])
n2 = int(request.POST['num2'])
res = n1 + n2
except (ValueError, TypeError):
warn = 'Text data is not allowed.'
params = {'operator': '+', 'action': 'add', 'tag': 'Addition' ,'n1': n1, 'n2': n2, 'res': res, 'warning': warn}
return render(request, 'arithmatic_app1.html', params)