This is a Jinja2 extension for generating CSRF tokens in Django templates.
Install the extension using pip:
pip install jinja2_csrf
To use this extension, you need to configure Jinja2 as a template engine in your Django settings:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'environment': 'path.to.your.jinja2.environment',
'extensions': ['jinja2_csrf.CSRFTokenExtension'],
},
},
]
Make sure to replace 'path.to.your.jinja2.environment' with the actual path to your Jinja2 environment.
In your Jinja2 templates, you can now use the csrf_token tag to generate a CSRF token:
<form method="post">
{% csrf_token %}
<!-- Your form fields go here -->
<button type="submit">Submit</button>
</form>
The csrf_token tag will generate an <input>
element with the CSRF token value:
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
Make sure to include the csrf_token tag within your form to protect against CSRF attacks.