SQLAlchemy query.filter_by returns 没有
SQLAlchemy query.filter_by returns nothing
我正在学习 SQLAlchemy,我被困在下面的过滤器上,因为它 returns 由于某种原因什么都没有。
search_term = Term.query.filter_by(term=term).first()
# I also tried the below as I know there is "toy" in the table.
search_term = Term.query.filter_by(term='toy').first()
我想获取它,然后 search_term.id
获取属于该术语的 ID,这样我就可以将它用于另一个提交作为关系的一部分。
#routes.py.
@search.route('/search/<term>', methods=['GET', 'POST'])
def index(term):
search_term = Term.query.filter_by(term=term).first()
if search_term:
return 'term exists'
search_term = Term(term=term)
db.session.add(search_term)
db.session.commit()
search_term = Term.query.filter_by(term=term).first() # Returns nothing
return f'test: {search_term}'
#Models.py
class Term(db.Model):
id = db.Column(db.Integer, primary_key=True)
term = db.Column(db.String(60), index=True, unique=True)
timestamp = db.Column(db.DateTime, default=datetime.utcnow)
results = db.relationship('Results', backref='term', lazy='dynamic')
我不确定,但也许您的模型中需要一个 str 方法。你能添加类似
的内容吗
#Models.py
class Term(db.Model):
id = db.Column(db.Integer, primary_key=True)
term = db.Column(db.String(60), index=True, unique=True)
timestamp = db.Column(db.DateTime, default=datetime.utcnow)
results = db.relationship('Results', backref='term', lazy='dynamic')
def __str__(self):
return f"id: {self.id}"
现在您返回 Term
没有任何代表
我正在学习 SQLAlchemy,我被困在下面的过滤器上,因为它 returns 由于某种原因什么都没有。
search_term = Term.query.filter_by(term=term).first()
# I also tried the below as I know there is "toy" in the table.
search_term = Term.query.filter_by(term='toy').first()
我想获取它,然后 search_term.id
获取属于该术语的 ID,这样我就可以将它用于另一个提交作为关系的一部分。
#routes.py.
@search.route('/search/<term>', methods=['GET', 'POST'])
def index(term):
search_term = Term.query.filter_by(term=term).first()
if search_term:
return 'term exists'
search_term = Term(term=term)
db.session.add(search_term)
db.session.commit()
search_term = Term.query.filter_by(term=term).first() # Returns nothing
return f'test: {search_term}'
#Models.py
class Term(db.Model):
id = db.Column(db.Integer, primary_key=True)
term = db.Column(db.String(60), index=True, unique=True)
timestamp = db.Column(db.DateTime, default=datetime.utcnow)
results = db.relationship('Results', backref='term', lazy='dynamic')
我不确定,但也许您的模型中需要一个 str 方法。你能添加类似
的内容吗#Models.py
class Term(db.Model):
id = db.Column(db.Integer, primary_key=True)
term = db.Column(db.String(60), index=True, unique=True)
timestamp = db.Column(db.DateTime, default=datetime.utcnow)
results = db.relationship('Results', backref='term', lazy='dynamic')
def __str__(self):
return f"id: {self.id}"
现在您返回 Term
没有任何代表