flask-sqlalchemy笔记

flask_sqlalchemy笔记

安装

可通过 pip安装:

pip install flask-sqlalchemy

数据库连接

  1. 跟 sqlalchemy 一样,定义好数据库连接字符串 DB_URI。

  2. 将这个数据库连接字符串 DB_URI,通过SQLALCHEMY_DATABASE_URI键 添加到 app.config中。示例如下:

app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
  1. 使用flask_sqlalchemy.SQLAlchemy这个类,传入 app 创建 数据库对象,示例如下:
db = SQLAlchemy(app)

创建 ORM 模型

大致步骤和 sqlalchemy 中创建orm模型一致,只不过 基类 变为了 db.Model,数据类型都可以从db下直接获得,不用再去导入了,示例如下:

# 定义 orm 模型
class User(db.Model):
    __tablename__ = 'user'  # 表名
    # 字段
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)


class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(50), nullable=False)
    content = db.Column(db.Text, nullable=False)
    uid = db.Column(db.Integer, db.ForeignKey('user.id'))  # 外键

    author = db.relationship('User', backref='articles')
  • 在定义模型的时候,如果不指定类属性__tablename__,那么在映射的时候会讲模型名字的小写形式作为表的名字,如果在定义名字的时候采用驼峰的形式那么表名用连字符_连接,比如模型名为AllUser,那么表名就为:all_user,如果指定了该属性,那么表的名字就为指定的值。

将 ORM 模型映射到数据库

  • 使用db.drop_all()可以删除数据库中定义的orm模型有关的表
  • 使用db.create_all()可以创建定义orm模型有关的表

使用 session

通过 db.session来使用session对象,操作和在sqlalchemy中一样。

查询数据:

如果只查询一个模型上的数据,可以使用模型.query的方式查询,也可以使用db.session.query()来查询。查询方式和sqlalchemy中的query使用方式一样。
例如查询上面创建对象的数据可以通过下面的例子:

# 查询数据
users = User.query.all()  # 等同于 db.session.query(User).all()
# users = db.session.query(User).all() 

你可能感兴趣的:(flask-sqlalchemy笔记)