如何将 django csrf 令牌直接嵌入到 HTML 中?

问题描述 投票:0回答:3

有没有办法直接从我正在编辑的 Python 文件中插入 csrf 令牌?每个会话的令牌都不同,因此将其存储在数据库中并不是很有用。有没有办法在视图中动态加载令牌?

django csrf django-csrf csrf-token
3个回答
56
投票

拨打

django.middleware.csrf.get_token(request)
获取CSRF令牌。


52
投票

使用方法,就是直接在模板中使用。

来自文档,:

<form action="" method="post">
{% csrf_token %}

就是您需要包含的全部内容。


11
投票

接受的答案假设令牌已在请求对象中设置。

也许这样更好:

from django.middleware import csrf
def get_or_create_csrf_token(request):
    token = request.META.get('CSRF_COOKIE', None)
    if token is None:
        token = csrf._get_new_csrf_key()
        request.META['CSRF_COOKIE'] = token
    request.META['CSRF_COOKIE_USED'] = True
    return token
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.