【问题标题】:Flask SQLAlchemy one to many relationshipFlask SQLAlchemy 一对多关系
【发布时间】:2021-08-31 21:21:20
【问题描述】:

我是烧瓶和 Flask SQLAlchemy 的新手,我需要你的帮助。我有这两个模型 Person 和 Pet,我正在尝试在 html 页面中呈现查询结果,但我遇到了这个问题。我需要显示 Anthony 宠物的名字,但我只得到 id。如何显示 Anthony 宠物的名字?这是代码,非常基础。谢谢。

THE MODELS
class Person(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    pets = db.relationship('Pet', backref='owner')

class Pet(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    owner_id = db.Column(db.Integer, db.ForeignKey('person.id'))

@app.route('/')
def home():
    some_person= Person.query.filter_by(name='Anthony')
    return render_template('index.html', some_person = some_person)
THE HTML FILE
{% for p in some_person %}
{{p.pets}}
{%endfor%}

HTML 输出是(但我需要宠物的名字) [, ]

enter image description here

非常感谢。

【问题讨论】:

    标签: python-3.x flask sqlalchemy jinja2 flask-sqlalchemy


    【解决方案1】:

    首先您的查询不包括您想要多少只宠物,全部或第一,Person.query.filter_by(name='Anthony').first(),现在可以通过 for 循环打印安东尼的宠物名称

    {% for pet in some_person.pets %}
    {% pet.name %}
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      相关资源
      最近更新 更多