Flask-SQLAlchemy数据的增、删、改、查

本文介绍了一个使用ORM方式操作数据库的具体示例,包括增删改查等基本操作,并提供了实际的Python代码片段。通过这些示例,读者可以了解如何在Python应用中实现对数据库的基本操作。

1.创建增加一个数据:

    article1 = Article(title='aaa',content='bbb')
    db.session.add(article1)
    db.session.commit()   #提交事务

2.查

    result = Article.query.filter(Article.title == 'aaa').all()
    print(result[0].title)

其中的query是db.model中继承过来的,filter是过滤函数,加上all()后,返回值是一个数组,result[0]代表表单中的第一个对象
要想打印第一个对象的方法:

    article1 = Article.query.filter(Article.title == 'aaa').first()
    print(article1.title)
    print(article1.content)

3.改

article1 = Article.query.filter(Article.title == 'aaa').first()
article1.title = 'new title'
db.session.commit()

4.删

    article1 = Article.query.filter(Article.content == 'bbb').first()
    db.session.delete(article1)
    db.session.commit()

显示article数据库的全部数据select * from article;
删除article数据库中所有创建的数据delete from article;

### 数据库连接与初始化 在 Flask-SQLAlchemy 中,数据库操作的第一步是正确连接数据库。需要在 Flask 应用的配置中设置 `SQLALCHEMY_DATABASE_URI`,以指定数据库的地址。例如,使用 SQLite 数据库时,可以如下配置: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' db = SQLAlchemy(app) ``` 该配置确保了 Flask-SQLAlchemy 能够访问数据库并进行后续的操作[^1]。 ### 询操作(Read) 数据库中的数据ORM 的核心功能之一。Flask-SQLAlchemy 提供了多种询方式,包括 `query.all()`、`query.first()`、`query.filter()` 等方法。例如: ```python # 询所有记录 users = User.query.all() # 询第一条记录 user = User.query.filter_by(name='admin').first() ``` 这些方法允许根据不同的条件检索数据,并支持链式调用以实现更复杂的询逻辑。 ### 插入操作(Create) 插入新数据时,需要先创建模型类的实例,并将其添加到数据库会话中,最后提交事务。例如: ```python new_user = User(username='new_user', email='new_user@example.com') db.session.add(new_user) db.session.commit() ``` 该过程确保新记录被正确写入数据库,并触发相应的数据库操作。 ### 更新操作(Update) 更新已有数据时,首先需要询目标记录,然后修改其属性,并提交事务。例如: ```python user = User.query.filter_by(username='admin').first() user.username = 'admin_new' db.session.commit() ``` 此外,也可以使用 `update()` 方法直接更新符合条件的所有记录: ```python User.query.filter_by(name='yy').update({"fullname": "xx"}) db.session.commit() ``` 这种方式适用于批量更新操作,避免逐条修改记录的性能开销。 ### 除操作(Delete) 数据时,需要先询目标记录,然后调用 `delete()` 方法,并提交事务。例如: ```python user = User.query.filter_by(username='admin').first() db.session.delete(user) db.session.commit() ``` 也可以使用 `delete()` 方法直接除符合条件的所有记录: ```python User.query.filter_by(name='yy').delete() db.session.commit() ``` 该操作会永久移除数据库中的记录,因此在执行前应确保操作的正确性。 ### 事务管理 Flask-SQLAlchemy 使用 `db.session` 来管理数据库事务。所有对数据库的修改操作都必须通过会话对象进行。在执行完操作后,必须调用 `db.session.commit()` 提交事务,否则更不会生效。如果操作过程中发生错误,可以调用 `db.session.rollback()` 回滚事务,以确保数据库的一致性。 ### 总结 Flask-SQLAlchemy 提供了简洁而强大的 ORM 接口,使得数据库操作更加直观和高效。通过模型类的定义、询、插入、更新和除操作,开发者可以快速构建数据库驱动的应用程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值