flask-sqlalchemy笔记

2019-11-26  本文已影响0人  宽哥好

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')

将 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() 
上一篇下一篇

猜你喜欢

热点阅读