实例不会在模板上显示

时间:2018-05-31 15:21:42

标签: flask flask-sqlalchemy

我试图将对象传递给模板但其中没有显示任何内容。

from app.models import Datacenter

@app.route('/datacenter/<int:id>')
def datacenter(id):
    datacenter = Datacener.query.filter_by(id=id)   
    return render_template('datacenter.html', datacenter=datacenter)

HTML

{% extends "base.html" %}

{% block content %}
    <h1>{{ datacenter.name }}</h1>
{{ datacenter.name }}
    <p>{{ datacenter.number }}</p>
    <p>{{ datacenter.place }}</p>
    <p>{{ datacenter.capacity }}</p>
    <p>{{ datacenter.tier }}</p>
{% endblock %}

1 个答案:

答案 0 :(得分:1)

这是因为您没有显示Datacenter个实例,而是显示query。在你的python代码中尝试print(datacenter),你会看到它打印一个SQL语句而不是SELECT ... FROM...

您应该在查询中添加.first(),这样您就可以了。

datacenter = Datacenter.query.filter_by(id=id).first()

或者...

 datacenter = Datacenter.query.get_or_404(id)

最后一个专门查找正确的ID,如果找不到所述数据中心,则会向用户显示404错误。