Python语言Django开发框架常用数据库增删改查方法总结

17 篇文章 1 订阅

Python语言Django开发框架常用数据库增删改查方法,先看两个举例:
1、User(username=“user1”, password=“123456”).save()
2、User.objects.filter()
第一个举例是先创建一个模型对象,并赋值,然后调用save()方法,注意这里是模型对象调用save()方法,没有返回值;
第二个举例是模型类的objects模型管理器变量调用filter()方法,注意这里是模型类的objects变量调用filter()方法,返回QuerySet对象。
因此接下来的介绍,使用Model()方法和Model.objects方法实现数据库的增删改查方法:

添加方法

1、使用Model()方法

User(username=“user1”, password=“123456”).save(),没有返回值,也可以以下操作:
user = User()
user.username = “user1”
user.save()
添加成功后,user对象会有主键数据。

2、使用Model.objects方法

user = User.objects.create(username=“user1”, password=“123456”)
create()的返回值是实体对象,包含主键信息

删除方法

1、使用Model()方法

result = User(id=60).delete(),返回值result是一个元组类型,例如:(22, {‘userscore.Userscore’: 21, ‘user.User’: 1}),元组中的第一个值是删除的数量,第二个值是一个字典类型,即删除了哪些模型类和数量,因此可以使用result[0]是否大于0判断删除是否成功。

2、使用Model.objects方法

result = User.objects.filter(id__gt=55).delete(),返回值result是一个元组类型,与使用Model()方法一样。

修改方法

1、使用Model()方法

user = User(id=54)
user.loginname = “user2”
user.save()
注意:save()函数,可以添加也可以更新数据,根据模型对象中的主键是否存在判断,会默认更新所有字段,所以可以指定更新的字段:
user.save(update_fields=[“loginname”])

2、使用Model.objects方法

User.objects.filter(id=54).update(loginname=“user2”),返回值是int类型,更新数据的数量

查询方法

1、使用Model()方法

暂无

2、使用Model.objects方法

User.objects.get()、User.objects.filter()、User.objects.all()、User.objects.exclude()等
注意:get()方法的返回值是一个模型对象,同时要求数据库中有且只有一条符合条件的数据,否则会报错;查询一条数据更好的方法是:
filter().first(),如果数据不存在,返回None,如果存在返回模型对象;filter()、all()、exclude()等方法返回值是QuerySet对象。
filter().values(),filter().values(“username”)用法,返回值是ValuesQuerySet(QuerySet 的一个子类),values()中的参数是查询的表字段,如果为空那么查询所有字段,返回值ValuesQuerySet中的数据不再是对象列表,而是字典列表,字典中保存对象的属性名和数据,即可以简单理解为values()会将查询的对象转字典类型。

拓展

Model()方法和Model.objects方法中实现的以上数据库增删改查方法都是django的内置方法,也可以自定义一些公共方法。
比如在Model中添加 update_self() 方法,或者重写save()方法,那么就可以使用 Model().update_self() 直接调用;
在Model.objects方法中添加或者重写方法,我们需要先理解objects模型管理器的工作原理,这一块在下一博客中详解。

  • 24
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python可以通过许多不同的方式与数据库进行交互,包括使用原生的Python DB API,或者使用ORM框架,比如Django或SQLAlchemy等等。这里简单介绍一下Python数据库进行增删改查的基本操作。 1. 连接数据库 使用Python DB API,需要先连接到数据库。连接数据库的方式因不同数据库而异,例如MySQL可以使用PyMySQL,SQLite可以使用sqlite3,PostgreSQL可以使用psycopg2等等。以下是一个MySQL连接示例: ```python import pymysql conn = pymysql.connect( host='localhost', user='root', password='password', db='database_name', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) ``` 2. 插入数据 插入数据需要使用SQL的INSERT语句。以下是一个MySQL插入数据的示例: ```python with conn.cursor() as cursor: sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" cursor.execute(sql, ('user@example.com', 'password123')) conn.commit() ``` 3. 查询数据 查询数据需要使用SQL的SELECT语句。以下是一个MySQL查询数据的示例: ```python with conn.cursor() as cursor: sql = "SELECT * FROM `users` WHERE `email`=%s" cursor.execute(sql, ('user@example.com',)) result = cursor.fetchone() print(result) ``` 4. 更新数据 更新数据需要使用SQL的UPDATE语句。以下是一个MySQL更新数据的示例: ```python with conn.cursor() as cursor: sql = "UPDATE `users` SET `password`=%s WHERE `email`=%s" cursor.execute(sql, ('newpassword123', 'user@example.com')) conn.commit() ``` 5. 删除数据 删除数据需要使用SQL的DELETE语句。以下是一个MySQL删除数据的示例: ```python with conn.cursor() as cursor: sql = "DELETE FROM `users` WHERE `email`=%s" cursor.execute(sql, ('user@example.com',)) conn.commit() ``` 注意:这只是一个简单的示例,实际情况中需要根据不同的数据库和数据表进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linge511873822

亲的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值