【问题标题】:Using SqlAlchemy Models in flask在烧瓶中使用 SqlAlchemy 模型
【发布时间】:2015-12-14 20:19:59
【问题描述】:

我最初使用 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。但据我所见,首先我需要使用烧瓶应用程序创建一个数据库实例 - 像这样

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

如何锻炼?由于我的模型是从 Base 类继承的,但对于烧瓶,它们需要从 db.Model 类继承。

【问题讨论】:

标签: python flask sqlalchemy flask-sqlalchemy


【解决方案1】:

你可以简单地使用你的模型,它们不需要从 db.Model 继承,这只是一个让烧瓶集成更容易的说服力

【讨论】:

    【解决方案2】:

    您可以使用 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)
    

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多