《Flask Web開發 基於Python的Web應用開發實戰》書中關於定義sqlalchemy類的疑問

《Flask Web開發 基於Python的Web應用開發實戰》書中關於定義sqlalchemy類的疑問


《Flask Web開發 基於Python的Web應用開發實戰》一書中,使用sqlalchemy定義類,使用的是類屬性,沒有類構造函數(__init__()),也沒有實例屬性:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __repr__(self):
        return '<User %r>' % self.username

使用時:

>>> from yourapplication import User
>>> admin = User(username='admin',email= '[email protected]')
>>> guest = User(username='guest', email='[email protected]')

而在Flask-SQLAlchemy快速入門中給的例子是使用了構造函數和實例屬性:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username

使用:

>>> from yourapplication import User
>>> admin = User('admin', '[email protected]')
>>> guest = User('guest', '[email protected]')

我的疑問是:在操作數據庫時,它利用的是類屬性(表結構)還是實例屬性?抑或兩者都可以?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章