SQLAlchemy,Flask并使用filter_by和filter进行提取

时间:2016-12-14 10:50:05

标签: python flask sqlalchemy flask-sqlalchemy

我有一个Flask应用程序,我正在使用SQLAlchemy。

我有一个模特:

from sqlalchemy import BigInteger, Column, JSON, Text
from app import db

class Table_910(db.Model):
    __tablename__ = 'table_910'

    id = db.Column(BigInteger, primary_key=True)
    did = db.Column(Text)
    timestamp = db.Column(BigInteger)
    data = db.Column(JSON)
    db_timestamp = db.Column(BigInteger)

    def __repr__(self):
        return '<1_Data %r, %r>' % (self.did, self.id)

在我的视图部分中,我尝试根据did和timestamp提取一组行,因为我只想要一个数据子集。

from flask import render_template
from app import app, db, models

@app.route('/')
@app.route('/index')
def index():
    rows = models.Table_910.query \
        .filter_by(did='357139052424715') \
        .filter((db.Table_910.timestamp > 1466846920000) | (db.Table_910.timestamp < 1467017760000))

    return render_template('index.html', rows=rows)

但由于某种原因,我得到了:

AttibuteError: 'SQLAlchemy' object has no attribute 'Table_910'.

有谁知道这背后的原因?

1 个答案:

答案 0 :(得分:1)

如错误消息所示,您尝试访问SQLAlchemy对象上的Tables_910。但是你的模型是在models.py中定义的。您需要使用models.Table_910进行查询。