对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。
1、ORM-增加操作
新增操作
from django.test import TestCaseimport django# Create your tests here.import osos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'thz_django.settings')django.setup()"""这段代码是设置环境变量用的,使用Linux,我们可能经常去配置~/.bashrc然后写上 export JAVA_HOME=/usr/local/java/jdk1.8.0_231环境变量可以理解为一个大字典,如下{....,'JAVA_HOME': '/usr/local/java/jdk1.8.0_231','DJANGO_SETTINGS_MODULE': 'XXXX.settings'}如果环境变量中没有DJANGO_SETTINGS_MODULE,则设置为XXXX.settings如果环境变量已经配置了 DJANGO_SETTINGS_MODULE,则不进行更新,函数返回原有值而且 os.environ 配置的环境变量是临时的,运行结束后就会消失"""from user import models# 方式1:新增一条表记录c = models.Category(name="linux")c.save()# 方式2:新增一条表记录models.Category.objects.create(name="python")
2、ORM-查询操作
查询记录
# 查询方式1c = models.Category.objects.get(id=1) #查询结果是1条的可以用,多条不可以# select * from category where id = 1# 返回一个model对象 cprint(c.name)print(c.id)print(c.create_time)print(c.update_time)# 查询方式2:result = models.Category.objects.filter(id=1)#result = models.Category.objects.filter(id__gt=0) #id大于0的所有数据print(result)print(result[0])print(result.first()) # 取第一条print(result.exists()) # 有没有返回数量print(result.count()) # 返回多少条记录print(models.Category.objects.all()) # 返回这个表里所有数据
3、ORM-修改操作
修改记录
# 修改方式1:c = models.Category.objects.get(id=1)c.name="java"c.save()# 修改方式2:models.Category.objects.all().update(name="xxx") #全部修改models.Category.objects.filter().update(name="xxx")#条件修改
4、ORM-删除操作
删除记录
# 删除方式1:c=models.Category.objects.get(id=3)c.delete()# 删除方式2:models.Category.objects.all().delete() #删除Category表里所有数据models.Category.objects.filter(id=1).delete() #条件删除Category表里所有数据
