Python Flask Web 第十一课 —— 使用 Flask-SQLAlchemy 管理数据库

alchemy:炼金术,魔力;

flask-sqlalchemy 是一个 flask 扩展,其简化了在 Flask 程序中使用 SQLAlchemy 的操作。SQLAlchemy 是一个很强大的关系型数据库框架,支持多种数据库后台。

1. ORM vs ODM

从易用性的角度考虑,如果直接比较数据库引擎和数据库抽象层,显然后者更优。数据库抽象层也称为,

  • ORM:Object-Relational Mapper;
  • ODM:Object-Document Mapper;

ORM 和 ODM 把对象业务转换成数据库业务会有一定的损耗。大多数情况下,这种性能的降低微不足道。一般情况下,ORM 和 ODM 对生产率的提升远远超过了这一丁点儿的性能降低。

2. flask-sqlalchemy 的安装与配置

  • (1)安装

    pip install flask-sqlalchemy
  • (2)配置

    import os
    from flask_sqlalchemy import SQLAlchemy
    basedir = os.path.abspath(os.path.split(__file__)[0])
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite'
    app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    db = SQLAlchemy(app)

3. 模型的定义

模型该术语表示的程序使用的持久化实体,在 ORM 中,模型一般为 Python 类,类中的属性对应数据库表中的列。

flask-sqlalchemy 创建的数据库实例为模型提供了一个基类以及一系列辅助类和辅助函数,可用于定义模型的结构。

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

你可能感兴趣的:(Python Flask Web 第十一课 —— 使用 Flask-SQLAlchemy 管理数据库)