Я пытаюсь использовать flask-sqlalchemy для управления моей уже существующей базой данных mysql, и у меня есть таблица с именем content. Вот мой фрагмент кода.KeyError возникает, когда я запускаю приложение Flask (используя flask-sqlalchemy)
# coding:utf-8
from flask import Flask, render_template
from flask.ext.bootstrap import Bootstrap
from flask.ext.sqlalchemy import SQLAlchemy
...
app = Flask(__name__)
bootstrap = Bootstrap(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://...'
db = SQLAlchemy(app)
class Content(db.Model):
__table__ = db.Model.metadata.tables['content']
def __repr__(self):
return '<title %r>' % self.title
@app.route('/', methods=['GET', 'POST'])
def index():
return render_template('index.html')
...
if __name__ == '__main__':
app.run(debug=True)
Когда я запускаю код выше, я получаю эту ошибку
Traceback (most recent call last):
File "hello.py", line 13, in <module>
class Content(db.Model):
File "hello.py", line 14, in Content
__table__ = db.Model.metadata.tables['content']
KeyError: 'content'
Любая помощь будет оценена.
«KeyError» показывает, что вы получаете доступ к таблице как «Содержимое», в то время как фрагмент кода показывает, что вы обращаетесь к нему как с «содержимым» - оба раза вызывают 'KeyError'? –
@SeanVieira на самом деле я скопировал неправильный отчет, я изменил свой вопрос. Пожалуйста, проверьте. –
Любая причина, по которой вы используете 'metadata.tables' вместо того, чтобы просто использовать' __table__ = 'content''? –