python - ValueError:Flask 中闪存中解包的值太多(预期为 2)
问题描述
我ValueError (ValueError: too many values to unpack (expected 2))
在我的Flask
应用程序中有一个。我开始知道这是因为我使用 Flash 来显示带有类别的消息。
问题出现了,当我尝试这个时
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for category, msg in messages %}
<div class="alert {{category}}">
<h1>{{category}}:</h1>
<h4>{{msg}}</h4>
</div>
{% endfor %}
{% endif %}
{% endwith %}
但是,如果我只是从 for 循环中删除类别,它会起作用,但类别不会!
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for msg in messages %}
<div class="alert {{category}}">
<h1>{{category}}:</h1>
<h4>{{msg}}</h4>
</div>
{% endfor %}
{% endif %}
{% endwith %}
请帮我
解决方案
我猜您缺少在视图函数中设置第二个参数,即消息的类别(可能是error
,warning
无论如何..)flash()
flash(u'Invalid password provided', 'error')
不要忘记设置with_categories=true
功能get_flashed_messages()
:
{% with messages = get_flashed_messages(with_categories=true) %} {# --HERE-- #}
{% if messages %}
{% for category, msg in messages %}
<div class="alert {{category}}">
<h1>{{category}}:</h1>
<h4>{{msg}}</h4>
</div>
{% endfor %}
{% endif %}
{% endwith %}
参考这个文档
推荐阅读
- java - 为什么 JGit Push 总是返回“auth falied”
- php - 回显字符串并不总是显示单个引号
- android-studio - 连接失败(连接重置)。请检查网络连接,然后在 Android Studio 中重试
- python - Tensorflow Keras 预测返回错误形状的输出
- python - 如何使用 Windows 10 在 anaconda 上安装 boost python
- lua - 需要帮助检测我的 lua 脚本中的游戏灯光
- javascript - 将 JSON 数据传递到另一个屏幕
- python - 有没有办法遍历 Gensim 的 Word2Vec 的向量?
- swift - 如何在 SwiftUI 中检测空内容作为输入内容?
- python-3.x - PyTelegramBotAPI 将最后一个帖子从频道转发到 user_id