使用烧瓶

时间:2015-09-17 20:15:46

标签: python flask sqlalchemy flask-sqlalchemy

我最初使用SqlAlchemy创建了一些用于设置数据库的模型。最初我解析一些XML文件并填充数据库。这是我在服务器上设置应用程序时需要完成的一次性操作。

Base = declarative_base()

class Movie(Base):
        __tablename__ = 'Movies'
        id = Column(Integer, primary_key=True, autoincrement=True)
        title = Column(String(80))
        filename = Column(String(80), unique=True)
        genre = Column(String(80))
        language = Column(String(80))
        year = Column(Integer)
        description = Column(Text)
        poster = Column(String)

        def __init__(self, title, filename, genre, language, year, description, poster):
            self.title = title
            self.filename = filename
            self.genre = genre
            self.language = language
            self.year = year
            self.description = description
            self.poster = poster

        def __repr__(self):
            return '<Movie (id=%d, title=%s, filename=%s, genre=%s, year=%s, description=%s, poster=%s)>' % (
                self.id, self.title, self.filename, self.genre, self.year, self.description, self.poster )
......

现在我想在烧瓶中使用相同的模型来进行REST API。但是从我所看到的,首先我需要使用flask应用程序创建一个db实例 - 比如这个

app = Flask(__name__)
db = SQLAlchemy(app)
class Movie(db.Model):
.......

这项训练怎么样?由于我的模型继承自Base类,但对于烧瓶,他们需要从db.Model类继承。

2 个答案:

答案 0 :(得分:0)

您可以按原样使用模型,而不必“从” db.Model继承它们,这只是说服了使Flask集成更容易

答案 1 :(得分:0)

您可以使用SQLAlchemy实例创建一个模块,并仅在另一个模块中使用继承。

在database.py模块中:

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

movieModel.py

from database import db

class MovieModel(db.Model):
    __tablename__ = 'movie'

    id = db.Column(db.Integer, primary_key=True)

imageModel.py

from database import db

class ImageModel(db.Model):
    __tablename__ = 'image'

    id = db.Column(db.Integer, primary_key=True)