【Python Flask】 Web開發學習筆記——數據庫

書籍:《Flask Web開發:基於Python的Web應用開發實戰》

作者代碼地址:miguelgrinberg/flasky

Flask不限制使用何種類型的數據庫包,書中使用Flask-SQLAlchemy 作爲示範。Flask-SQLAlchemy是一個關係型數據庫框架,支持多種數據庫後臺。數據庫使用URL指定,格式如下:

MySQL: mysql://username:password@hostname/database

hostname表示MySQL所在的主機,database表示要使用的數據庫名。

from flask.ext.sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =\
    'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

db = SQLAlchemy(app)

和之前一樣,使用app.config爲flask的擴展提供全局變量和配置信息。

模型是指程序使用的持久化實體。ORM中模型是一個Python類,類中屬性對應數據庫表中的列。下面的例子定義了Role和User模型。

class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    
    def __repr__(self):
        return '<Role %r>' % self.name

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, index=True)
    
    def __repr__(self):
        return '<User %r>' % self.username

然後可以用各種相關的函數進行創建數據庫,創建模型,修改行,刪除行,查詢行等操作。

更多文章與筆記請關注:微信公衆號:二進制樹

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