SQLAlchemy基本操作(增、删、改、查)

时间:2024-04-07 17:27:27

准备工作

为了简化数据库操作,我们将使用 SQLAlchemy——一个 Python 数据库工具(ORM,即对象关系映射)。借助 SQLAlchemy,你可以通过定义 Python 类来表示数据库里的一张表(类属性表示表中的字段 / 列),通过对这个类进行各种操作来代替写 SQL 语句。这个类我们称之为模型类,类中的属性我们将称之为字段

导入扩展类

from flask_sqlalchemy import SQLAlchemy

设置数据库URL

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:[email protected]:3306/test?charset=utf8'

创建数据库模型

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

创建数据库表

SQLAlchemy基本操作(增、删、改、查)

创建

下面的操作演示了如何向数据库中添加记录:

代码清单:user.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
# 配置 sqlalchemy 数据库驱动
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:[email protected]:3306/test?charset=utf8'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False    # 关闭对模型修改的监控
# 初始化
db = SQLAlchemy(app)

#创建数据库模型
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

    def __init__(self, id, name):
        self.id = id
        self.name = name

    #添加用户
    def save(self):
        db.session.add(self)
        db.session.commit()


 user = User(id='3', name='Tom')
 user.save()

操作结果:

SQLAlchemy基本操作(增、删、改、查)

查询

下面的操作演示了如何从数据库中读取记录,并进行简单的查询:

代码清单:user.py

users=User.query.all()
for user in users:
    print('User [id:{0},name{1}]'.format(user.id,user.name))

操作结果:

SQLAlchemy基本操作(增、删、改、查)

更新

user=User.query.get(2)
user.name='lishi'
db.session.commit()

操作结果:

SQLAlchemy基本操作(增、删、改、查)

删除

下面的操作删除了 User 模型中主键为 2 的记录:

user=User.query.get(2)
db.session.delete(user)
db.session.commit()

操作结果:

SQLAlchemy基本操作(增、删、改、查)