这是我的模特:
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)
这在我的数据库中创建了两个名为“uncategorized”的类别。为什么会这样?
答案 0 :(得分:1)
那是因为您app.run
使用了debug=True
:
如果设置了 debug 标志,服务器将自动重新加载以进行代码更改,并在发生异常时显示调试器。
重新加载器的工作方式是在子进程中再次启动,因此if __name__ == '__main__'
(以及initialize_tables
)运行两次。