对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。
1、ORM-增加操作
新增操作
from django.test import TestCase
import django
# Create your tests here.
import os
os.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-查询操作
查询记录
# 查询方式1
c = models.Category.objects.get(id=1) #查询结果是1条的可以用,多条不可以
# select * from category where id = 1
# 返回一个model对象 c
print(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表里所有数据