Django 是一个流行的 Python Web 框架,它提供了一个强大的 ORM(对象关系映射)机制,用于管理应用程序和数据库之间的数据交互。
ORM 是一种编程技术,它将数据库表的结构和数据转换为面向对象的模型,使开发者能够使用类和对象的方式来操作数据库,而不需要直接编写 SQL 查询语句。这简化了开发过程,提高了代码的可读性和可维护性。
Django 的 ORM 提供了一系列的 API 和工具,让开发者能够轻松地进行数据库操作,包括创建、读取、更新和删除数据,以及执行复杂的查询操作。以下是 Django ORM 的一些主要特点和功能
2.数据表的创建
1.首先,在django的app下的models.py文件中创建一个类,这个类中的字段就是所要创建数据表的字段,例如:
2.执行如下指令:
python manage.py makemigrations
python manage.py migrate
3.数据库变化
以上1.2步骤执行前:
以上1.2步骤执行后:
ORM机制提供关于数据表的删除:只需将表所对应的类注释掉即可。
例如以上定义的app01_UserInfo注释以后:
再执行
python manage.py makemigrations
python manage.py migrate
这样表就被删除了。
以下例子为了方便调试,在不执行python manage.py makemigrations和python manage.py migrate的情况下也可以完成测试。
1.首先在views中导入models的相关内容:
2.在views中定义一个orm视图函数,当浏览器发起请求时,执行视图函数中的内容:
3.新增表中数据项的指定如下:类名 .objects.create(数据项),如下所示:
UserInfo.objects.create(name="qingpeng", password="123456", age=26)
例如:如下图对于表中id=2存在和id=1数据相同情况。
orm机制提供的删除指定如下:类名 .objects.filter(条件).delete()
# 删除id=2的重复数据项
UserInfo.objects.filter(id=2).delete()
再次查看数据表,可见id=2的数据被删除了!
此外,如果需要删除全部数据,应该使用all进行删除:类名.objects.all().delete()
# 删除全部数据
UserInfo.objects.all().delete()
删除全部数据项:
6.更新表中的数据项
一、修改全部数据指令:类名.objects.all().update(修改字段= 修改值),如下表示修改表中所有数据的age = 19
# 修改数据项
UserInfo.objects.all().update(age=19)
修改命令执行后,如下:
二、按条件修改数据指令:类名.objects.filter(条件).update(修改字段= 修改值),如下表示修改表中所有数据的id = 8的name = 清鹏
修改后效果如下:
7.获取表中的数据项
一、获取全部数据指令:类名.objects.all().,如下表示获取djlearn表中所有数据的指令:
# 获取数据项
UserInfo.objects.all()
获取到的数据如下:
显然得到的是一个 QuerySet类类型,要想获得其中的值,需要遍历列表【列表中每一个数据就是一个对象】如下所示:
# 获取数据
data_list = UserInfo.objects.all()
print("获取数据", data_list)
# 遍历
for obj in data_list:
print(obj.name, obj.password, obj.age)
如果你只想获取其中的某条数据,那么可以这样操作:类名.objects.filter(条件).first()
实践:
# 只获取某条数据(以下获取id=9的数据)
item = UserInfo.objects.filter(id=9).first()
print(item.id, item.name, item.password, item.age)