Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlalchemy错误表示,当我可以在db浏览器中看到sqlite表时,该表中不存在任何列_Python_Sqlite_Flask_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python sqlalchemy错误表示,当我可以在db浏览器中看到sqlite表时,该表中不存在任何列

Python sqlalchemy错误表示,当我可以在db浏览器中看到sqlite表时,该表中不存在任何列,python,sqlite,flask,sqlalchemy,flask-sqlalchemy,Python,Sqlite,Flask,Sqlalchemy,Flask Sqlalchemy,尝试访问路由中的视图时出现以下错误。目前数据库中没有upf条目。这是我用来创建一个页面以向数据库中注入条目的视图,但是它说时间戳丢失了。时间戳列显示在数据库查看器和CREATETABLE语句中 这里是错误 sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: upf.timestamp [SQL: SELECT f.id AS f_id, f.body AS f_body, f.timestamp

尝试访问路由中的视图时出现以下错误。目前数据库中没有upf条目。这是我用来创建一个页面以向数据库中注入条目的视图,但是它说时间戳丢失了。时间戳列显示在数据库查看器和CREATETABLE语句中

这里是错误

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: upf.timestamp
[SQL: SELECT f.id AS f_id, f.body AS f_body, f.timestamp AS f_timestamp, f.language AS f_language, f.parent_id AS f_parent_id
FROM f, upfd
WHERE ? = upfd.f_id AND f.id = upfd.f_id ORDER BY upf.timestamp DESC
LIMIT ? OFFSET ?]
[parameters: (4, 25, 0)]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
以下是生成错误的路由:

@bp.route('/f/<int:f_id>', methods=['GET', 'POST'])
def f(f_id=0):
    if f_id==0:
        return redirect(url_for('main.index'))
    upform=UpForm()
    f=f.query.get(f_id)

    page = request.args.get('page', 1, type=int)
    up_fs=f.upfs.order_by(Upf.timestamp.desc()).paginate(
            page, current_app.config['POSTS_PER_PAGE'], False)
    up_next_url = url_for('main.up_fs', page=up_fs.next_num) \
        if up_fs.has_next else None
    up_prev_url = url_for('main.up_fs', page=up_fs.prev_num) \
        if up_fs.has_prev else None
    return render_template('f.html', title=_('f'), upform=upform,
                           upfs=upfs.items, up_next_url=up_next_url,
                           up_prev_url=up_prev_url)

它应该是
upfd.timestamp
而不是
upf.timestamp
。我试过了,它给出了这个错误:NameError:name'upfd'没有定义不确定从这里去哪里。
class Upf(SearchableMixin, db.Model):
    __tablename__ = 'upf'
    id=db.Column(db.Integer, primary_key=True)
    #Update to wikipedia style with formatting etc
    body = db.Column(db.String(1024))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    language = db.Column(db.String(5))

    #filter duplicates

    #manytomany
    sources = db.relationship('Upf', secondary=upfd, backref='upsources')

    def __repr__(self):  # pragma: no cover
        return '<Upf: > %r' % (self.id)
def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_index(op.f('ix_f_timestamp'), 'f', ['timestamp'], unique=False)
    op.create_table('upf',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('body', sa.String(length=1024), nullable=True),
    sa.Column('timestamp', sa.DateTime(), nullable=True),
    sa.Column('language', sa.String(length=5), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )