Django中ORM操作

2023-05-30,,

ORM操作

class UserInfo(models.Model):

username = models.CharField(max_length=32)

password = models.CharField(max_length=64)

dp = models.ForeignKey(to='DePart',to_field='id')

# depart = models.ForeignKey('DePart')

class DePart(models.Model):

title = models.CharField(max_length=16)

# ForeignKey查询

# 正向跨表查询

# 1.对象

# q = models.UserInfo.objects.all()

# for row in q:

#      print(row.username,row.password,row.dp_id,row.dp.id,row.db.title)

# 2.字典

# q = models.UserInfo.objects.values('username','password','dp_id','dp__title')

# for row in q:

#      print(row['username'],row['dp__title'])

# 3.元祖

# q = models.UserInfo.objects.values_list('username','password','dp_id','dp__title')

# for row in q:

#      print(row[0],row[3])

# 反向跨表查询

# 1.对象

# v = models.DePart.objects.all()

# for row in v:

#      print(row.id,row.title,row.userinfo_set.all())

# 2.字典

# v = models.DePart.objects.values('id','title','userinfo__username','userinfo__password')

# for row in v:

#       print(row)

# 3.元祖

# v = models.DePart.objects.values('id','title','userinfo__username','userinfo__password')

# for row in v:

#      print(row)

# 自己写第三张表

def U2G(models.Model):

ui = models.ForeignKey('UserInfo')

ug = models.ForeignKey('UserGroup')

# 添加数据

models.U2G.objects.create(ui=1,ug=1)

models.U2G.objects.create(ui=1,ug=2)

models.U2G.objects.create(ui=2,ug=1)

models.U2G.objects.create(ui=2,ug=2)

# 查询

q = models.U2G.objects.all()

for row in q:

print(row.ui.username)

print(row.ug.caption)

# django 自动生成

m = models.ManyToManyField('UserInfo')

增加:

obj = models.UserGroup.objects.filter(id=2).first()

obj.m.add(1)

obj.m.add(1,2,3)

obj.m.add(*[1,2]) #一次多加一个

删除:

obj = models.UserGroup.objects.filter(id=2).first()

obj.m.remove(1)

obj.m.remove(2,3,4)

obj.m.remove(*[2,3,4])

清空:

obj.m.clear() # 没有参数

更新:设置为什么, 最后就只有什么

obj.m.set([3,])

查询:

q = obj.m.all()

print(q)

q = obj.m.filter()

Django中ORM操作的相关教程结束。

《Django中ORM操作.doc》

下载本文的Word格式文档,以方便收藏与打印。