- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当我想在我的网站上使用我的注册表时,我收到错误 403:“CSRF 验证失败。请求已中止。”在本网站的源代码中,我意识到它丢失了。这是我网站上查看源代码的一部分:
<div style="margin-left:35%;margin-right:35%;">
<fieldset>
<legend> Wszystkie pola oprócz numeru telefonu należy wypełnić </legend>
<form method="post" action=".">
<p><label for="id_username">Login:</label> <input id="id_username" maxlength="30" name="username" type="text" required/></p>
<p><label for="id_email">Email:</label> <input id="id_email" name="email" type="email" required /></p>
<p><label for="id_password1">Hasło:</label> <input id="id_password1" name="password1" type="password" required /></p>
<p><label for="id_password2">Powtórz hasło:</label> <input id="id_password2" name="password2" type="password" required /></p>
<p><label for="id_phone">Telefon:</label> <input id="id_phone" maxlength="20" name="phone" type="text" /></p>
<p><label for="id_log_on">Logowanie po rejestracji:</label><input id="id_log_on" name="log_on" type="checkbox" /></p>
<input type="submit" value="Rejestracja"><input type="reset" value="Wartości początkowe">
</form>
</fieldset>
</div>
我对此感到惊讶,因为在我的 Pythonanywhere 文件中存在这段代码。
这是我在 Pythonanythere 上的文件 register.html 的一部分:
<div style="margin-left:35%;margin-right:35%;">
<fieldset>
<legend> Wszystkie pola oprócz numeru telefonu należy wypełnić </legend>
<form method="post" action=".">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Rejestracja"><input type="reset" value="Wartości początkowe">
</form>
</fieldset>
</div>
我的网页看不到这段代码,我做错了什么?它在服务器上缝合但在网页上查看源代码它不是。
编辑:这是呈现我的模板的 View :
def register(request):
if request.method == 'POST':
form = FormularzRejestracji(request.POST)
if form.is_valid():
user = User.objects.create_user(
username=form.cleaned_data['username'],
password=form.cleaned_data['password1'],
email=form.cleaned_data['email']
)
user.last_name = form.cleaned_data['phone']
user.save()
if form.cleaned_data['log_on']:
user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password1'])
login(request, user)
template = get_template("osnowa_app/point_list.html")
variables = RequestContext(request, {'user': user})
output = template.render(variables)
return HttpResponseRedirect("/")
else:
template = get_template("osnowa_app/register_success.html")
variables = RequestContext(request, {'username': form.cleaned_data['username']})
output = template.render(variables)
return HttpResponse(output)
else:
form = FormularzRejestracji()
template = get_template("osnowa_app/register.html")
form = FormularzRejestracji()
variables = RequestContext(request, {'form': form})
output = template.render(variables)
return HttpResponse(output)
最佳答案
您应该将普通字典和请求对象传递给 template.render()
,而不是 RequestContext
。模板引擎将为您将其转换为 RequestContext
:
template = get_template("osnowa_app/register.html")
context = {'form': form}
output = template.render(context, request)
现在,template.render()
函数将类似字典的对象视为第一个参数,但没有请求作为第二个参数。如果没有将请求作为第二个参数,它将类似字典的 RequestContext
转换为普通的 Context
对象。由于 Context
对象不运行上下文处理器,因此您的上下文缺少 csrf token 。
或者你可以只使用 render
shortcut ,它返回一个 HttpResponse
对象,内容是呈现的模板:
from django.shortcuts import render
def register(request):
...
return render(request, "osnowa_app/register.html", {'form': form})
这个特殊案例也在 ticket #27258 中讨论。 .
关于python - 在网站文件中消失 {% csrf_token %},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39849875/
我读到这两个基本上是同一回事,但每个都给我不同的错误,我不确定该去哪一个。我什至不知道如何解决这个问题。有人可以看看我的代码吗,我已经为此苦苦挣扎了两天。 我的html $(docume
在搜索结果网址中包含csrf。不知道为什么在那里,以及如何删除它。搜索效果很好。这是网址 /search/?csrfmiddlewaretoken=675d1340034e094866d15a9214
我在 django 教程中做 wiki 并且在教程中使用 django 的早期版本,其中 csrf token 不是强制性的。我已将 {% csrf_token %} 添加到表单中,但是我不确定在 V
Django 1.9.5CSRF token 未添加隐藏表单字段。尝试使用 RequestContext 进行 render_to_request,只是渲染,尝试装饰器 - 没有任何效果,隐藏的输入不
我在 Jquery Ajax 中使用 CodeIgniter3 将一些数据插入数据库。 但是,当用户插入如下内容时,我使用csrf_token来制作安全表单数据。 问题我无法在 Chrome 浏览器上
当我想在我的网站上使用我的注册表时,我收到错误 403:“CSRF 验证失败。请求已中止。”在本网站的源代码中,我意识到它丢失了。这是我网站上查看源代码的一部分: Wszystkie pola
我很好奇:我知道 Django 中有两种 csrf 保护方式:模板中的 {% csrf_token %} 和 View 中的 @csrf_protect。 所以,问题是:它们可以互换吗?我的意思是我可
我正在尝试在 Django 中执行单元测试。我在 index.html 中有以下表格: {% csrf_token %} 我正在测试 View 是否正确呈现模板: View .py de
我是 Django 新手,我仍在尝试掌握它的功能。我使用 Django 1.4.2 创建了一个非常简单的项目,它具有简单形式的索引页面,您可以在其中输入内容,还可以在结果页面中在提交后显示您的输入(代
我有一个在 1.2.1 上运行的 django 站点,有时我的用户会失去很多工作,因为 csrf_token cookie 不存在并且页面错误并在发布时出现 403 错误。我将范围缩小到另一个站点(我
我正在一个 Django 项目中工作,部分功能是用户登录,但它不起作用。同一段代码在 10 分钟前运行得很好。 错误:模板中使用了 csrf_token,但上下文未提供该值。 仅供引用,我已经尝试使用
我正在尝试将 reactjs 与 laravel 集成。所以我所做的是,通过使用一些命令将我的 js 从 vue 更改为 react。然后我在 /resources/js/components 下添加
我有一个动态生成的表单,但我不能用它做任何事情,因为 Django 在每个 POST 表单中都需要一个 csrf_token。 我的表单是通过以下方式生成的: $("#results").append
我有一个登录表单,我希望它在我的所有 View 中都可用,因此我创建了一个上下文处理器来将此表单添加到每个加载的上下文中。 问题是 {% csrf_token %}在表单模板上不会呈现具有 CSRF
我的views.py: from django.core.context_processors import csrf from django.views.decorators.csrf import
网站可以将 csrf_token 显示为 URL 参数吗?我有一种感觉,我应该看不到它,但我不太确定。如果有人能澄清这一点,我将不胜感激! 最佳答案 不,这是 Not Acceptable 。 在 U
我需要使用 csrf_token 连接一些文件(来自 laravel),但我有未知错误,例如: 语法错误,意外的 ''css/app.css)); ?>">' (T_ENCAPSED_AND_WHI
尽管我已经添加了所有必要的中间件类,但在 Django (1.2.5) 中的表单上添加 csrf_token 时遇到了一些问题 {% csrf_token %} 给出...name 'csrf_tok
这是一个简单的问题。 我正在尝试使用 Angular 5 和 Drupal 8 作为后端进行登录。连接工作正常,我可以将 JSON 发送到 Drupal 站点,它会返回一个 CSRF token 。
在不使用表单的 Django 模板中,我想将文件上传到我的 Web 服务器。因此,我正在使用名为 dropzonejs 的 javascript 库。 我完全遵循本教程 bootstrap dropz
我是一名优秀的程序员,十分优秀!