我一直在阅读文档(截图)以及有关declarative_base()的一些在线问题。例如https://groups.google.com/forum/#!topic/sqlalchemy/-Zl9T7Q7awY,因为我试图了解它在https://github.com/hack4impact/flask-base/tree/master/app
等项目中的用法该项目使用flask-sqlalchemy(http://flask-sqlalchemy.pocoo.org/2.1/quickstart/)
从研究中我发现可以创建如下所示的sqlalchemy表模型:
class Property(db.Model):
__tablename__ = 'properties'
__searchable__ = ['body']
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(140))
body = db.Column(db.String(1400))
img = db.Column(db.String(140))
或从基础继承,例如
Base = declarative_base()
class Property(Base):
__tablename__ = 'properties'
__searchable__ = ['body']
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(140))
body = db.Column(db.String(1400))
img = db.Column(db.String(140))
我为什么要在这里使用Base?
PS:
在app/_init.py
上方的项目中,初始化了带有多个扩展名的烧瓶应用程序,包括sqlalchemy:
mail = Mail()
db = SQLAlchemy()
.....
def create_app(config_name):
....
db.init_app(app)
login_manager.init_app(app)
...
然后将db导入到模型文件中。