Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CSRF令牌';在Django中s值不变_Python_Django_Python 3.x - Fatal编程技术网

Python CSRF令牌';在Django中s值不变

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过期持续时

我是Django框架的新手

我使用django创建了一个简单的算术应用程序

正如django文档中所建议的,我写道

{% 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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: <input type="text" size="10" value="{{ res|default:0 }}" disabled>
            &nbsp; <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)