小编nan*_* kk的帖子

Flask 单元测试抛出错误:在 Jinja2 模板中没有属性“csrf_token”

在我的单元测试中,我已经使用禁用了 CSRF

WTF_CSRF_ENABLED = False
Run Code Online (Sandbox Code Playgroud)

失败的示例测试用例

def test_get_tags(self):
    tag_name = 'tag_1'
    r = self.client.get(url_for('tag.tags'))
    self.assertIn(tag_name, r.get_data(as_text=True))
Run Code Online (Sandbox Code Playgroud)

但是在我的模板中,我调用了 csrf 令牌。

{% for form in tag_forms%}
    {{form.csrf_token}}
    {{form.tag_name}}
    {{form.update}}
    {{form.delete}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

这导致以下错误

jinja2.exceptions.UndefinedError: 'app.tag.forms.UpdateTagForm object' has no attribute 'csrf_token'
Run Code Online (Sandbox Code Playgroud)

我猜这个错误是由于我已经禁用了 CSRF 令牌。如何解决这个问题?

python jinja2 flask flask-wtforms python-unittest

4
推荐指数
1
解决办法
348
查看次数

为什么这个`do` -`while`循环在结束后重复最后一个值?

我在谷歌Chrome控制台中尝试了以下代码,我得到了这个输出.为什么还要额外打印4张?

var i = 0;

do{
  console.log(i);
  i++;
} while(i < 5);
Run Code Online (Sandbox Code Playgroud)

输出:

0
1
2
3
4
4
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-devtools

1
推荐指数
1
解决办法
92
查看次数