【发布时间】:2017-09-22 21:24:28
【问题描述】:
找不到与此问题相关的任何问题。我可能做错了,因为我确信一定有更简单的方法来实现这一点,但我还想不通。
--> 我正在尝试将一个 Python 对象从 Jinja2 获取回 Python,这样我就可以在 Python 中访问它的值。
所以我将一组用户从 Python(Flask) 传递到 HTML 中的下拉列表,如下所示:
<div class="form-group">
<label>User:</label>
<select class="form-control" name="user">
{% for user in users %}
<option value="{{ user }}">{{ user.firstname }} {{ user.lastname }}
({{ user.birthdate }})</option>
{% endfor %}
</select>
</div>
这很好用,我可以在下拉列表中选择一个用户。现在我想在 Python 中访问用户 user.address 属性。 (当然这些属性已经在用户类中定义了)。
所以我在 Python (Flask) 中有一个这样的函数,当按下按钮时会触发它:
@app.route("/display_user", methods=["POST"])
def display_user():
user = request.form["user"]
address = user.address
return render_template("show.html", address=address)
现在我收到以下错误:
"AttributeError: 'str' object has no attribute 'address'".
我将 json 作为字符串取回,如下所示:
{'firstname': 'test','lastname': 'test','birthday': 'test','address': 'test'}
我现在可能应该用这个字符串/json 创建一个字典,然后用 ['address'] 访问这些值,但不知何故我不知道如何。我用 json.dumps() 尝试了它,但它不起作用,仍然是相同的错误消息。我还认为必须有一种更简单/更好的方法来实现这一目标。
有什么建议吗? (使用 Python 3.6.2)
【问题讨论】:
-
那不是json,那是python
repr -
好的,我现在明白了。谢谢!有没有办法从 repr 回到该类的实例?还是让 Jinja2 返回用户的 instace/json?
标签: python json python-3.x flask jinja2