0
這是我的模型:爲什麼在我的sqlalchemy init中創建兩個對象?
class Category(db.Model):
__tablename__='category'
id = db.Column(db.Integer,primary_key=True)
items = db.relationship('Item',backref='category',lazy='dynamic')
name = db.Column(db.String(80))
order = db.Column(db.Integer)
private = db.Column(db.Boolean)
color = db.Column(db.String(80),unique=False)
def __init__(self,name,order=None,private=None):
r = lambda: random.randint(0, 255)
color = (r(), r(), r())
color = ('#%02X%02X%02X' % color)
count = db.session.query(Category).count()
print count
self.name = name
self.color = color
self.order = count+1
self.private = 1
def __repr__(self):
return '<Category %r>' % self.name
,我在這裏創建表:
def initialize_tables():
db.create_all()
c = Category(name="uncategorized")
db.session.add(c)
db.session.commit()
if __name__ == '__main__':
initialize_tables()
app.run(debug=True)
這就造成了兩個類別,我命名爲「未分類」數據庫。這是爲什麼發生?
好酷。我會在哪裏放置我只想運行一次的代碼?就像我創建'未分類'類別時一樣? – BigBoy1337
查看重複。 – davidism
@ BigBoy1337重複問題的答案就像提到的大衛主義那樣,但對於您的具體情況,您可能不應該嘗試在服務器啓動時初始化數據庫,因爲無論如何,只要重新啓動服務器就可以運行多次你是否使用reloader。 – univerio