我遵循Flask-SQLAlchemy教程。 我在python 2.6上有Flask 0.9,sqlalchemy 0.7.8和flask-sqlalchemy 0.16。Flask Sqlalchemy:不同模塊之間的關係
我想創建一對多的關係,就像在他們的教程中一樣。
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
addresses = db.relationship('Address', backref='person',
lazy='dynamic')
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
在那之後,我可以創建數據庫:
from DataBase.Tables.MyClass import db
db.create_all()
它運作良好,當在同一文件中創建兩個類。
當我想通過2個不同的文件(2個不同的模塊)創建它時,它不再工作。
這只是一個例子(我試圖做一些事情要複雜得多,用大量的類和我需要的關係,兩個不同模塊之間的存在,但我把它簡化所以我的問題可以更容易明白)
我有2個模塊:Person和地址,它們都有:
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:\\MyBase\\Base.sqlite'
db = SQLAlchemy(app)
和他們每個人都有前寫的類的聲明。
我的主要功能是第三模塊:
from DataBase.Tables.Person import db as person_db
from DataBase.Tables.Address import db as address_db
if __name__ == "__main__":
import DataBase.Tables.Person
import DataBase.Tables.Address
person_db.create_all()
address_db.create_all()
我仍然得到一個錯誤在Eclipse:
* sqlalchemy.exc.NoReferencedTableError:與列相關聯的外鍵 'Address.person_id' 可能找不到表'人',以產生一個外鍵,以目標列'sid'*
我可以找到另一篇文章,有人建議使用「元數據」,但我找不到正確的方法來使用。
有沒有人有想法解決這個問題?
謝謝!
聽起來不錯,我想現在這樣 – Yace 2012-07-30 13:52:03
完美工作,感謝:) – Yace 2012-08-03 12:49:11