Python sqlalchemy错误表示,当我可以在db浏览器中看到sqlite表时,该表中不存在任何列
尝试访问路由中的视图时出现以下错误。目前数据库中没有upf条目。这是我用来创建一个页面以向数据库中注入条目的视图,但是它说时间戳丢失了。时间戳列显示在数据库查看器和CREATETABLE语句中 这里是错误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
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')
)