我使用SQLAlchemy创建了一个表:
engine = create_engine('sqlite:///sd.sqlite')
images = Table(
'images', meta,
Column('id', Integer, primary_key = True),
Column('url', String),
...
)
meta.create_all(engine)
字符串
这是可行的,我有一个数据库,可以用数据填充它。我想创建一个Flask应用程序来使用Flask_SQLAlchemy访问这些数据,但无法让它工作:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////sd.sqlite'
db = SQLAlchemy(app)
Base = db.declarative_base()
class Images(db.Model):
with app.app_context(): #needed to fix application context error
__table__ = db.Table('images', Base.metadata),
""" with app.app_context():
db.Model.metadata.reflect(db.engine) """
@app.route("/")
def hello_world():
images = Images.query.all()
return images
app.run(port=8131)
型
这会导致以下错误:
Mapper Mapper[Images(images)]无法为Map表“images”组装任何主键列
但是我指定了一个主键。我做错了什么?
1条答案
按热度按时间mzmfm0qo1#
所以,我的代码有两个问题:
1.我需要指定数据库文件的绝对路径。
1.我必须使用以下语法来获取表模式:
字符串
1.我必须使用
db.reflect()
而不是declarative_base