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操作的更多相关文章

  1. 1122 django中orm操作

    目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 ...

  2. Django中ORM操作提升性能

    提升orm操作性能注意的点 优化一:尽量不查对象,能用values就是用values 直接使用对象查询的结果是5条sql语句 def youhua(request): # 使用对象查 obj_list ...

  3. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  4. Django中ORM介绍和字段及其参数

    ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...

  5. Django之ORM操作

    Django之ORM操作 前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计 ...

  6. Django之ORM操作(聚合 分组、F Q)

    Django之ORM操作(聚合 分组.F Q) 聚合 aggregate()是QuerySet的一个终止子句,也就是说,他返回一个包含一些键值对的字典,在它的后面不可以再进行点(.)操作.   键的名 ...

  7. Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)

    Django中ORM介绍和字段及字段参数   Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...

  8. django中orm使用的注意事项

    必备小知识点 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者 ...

  9. Django之ORM操作(***)

    Django之ORM操作(***) http请求的流程: url--> 视图view(模板+数据库) --> ORM的功能: 可以转换SQL语句,并做操作. ORM操作数据表: -创建表: ...

随机推荐

  1. bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

  2. bzoj千题计划108:bzoj1018: [SHOI2008]堵塞的交通traffic

    http://www.lydsy.com/JudgeOnline/problem.php?id=1018 关键点在于只有两行 所以一个2*m矩形连通情况只有6种 编号即对应代码中的a数组 线段树维护 ...

  3. codeforces 830 B Cards Sorting

    B. Cards Sorting  http://codeforces.com/problemset/problem/830/B Vasily has a deck of cards consisti ...

  4. Node入门教程(3)第二章: Node 安装

    Node 安装 官网下载地址: https://nodejs.org/en/download/ 安装方式 windows 下安装 建议直接选择:Windows Installer (.msi)下载进行 ...

  5. 关于移动web教程免费发布

    各位老铁大家好,最近经历了太多太多,精力一直不能集中做自己愿意做的事情. 移动Web课程一开始设置收费10块,其实本意是让大家感觉有支出,就会相对珍惜好好学习,但是发现收费把大部分人挡在门外,现在恢复 ...

  6. 使用 BenchmarkDotnet 测试代码性能

    先来点题外话,清明节前把工作辞了(去 tm 的垃圾团队,各种拉帮结派.勾心斗角).这次找工作就得慢慢找了,不能急了,希望能找到个好团队,好岗位吧.顺便这段时间也算是比较闲,也能学习一下和填掉手上的坑. ...

  7. OpenID Connect 是什么?

    一.OpenID Connect的概念 1.OpenID Connect 是什么? OpenID Connect 是一套基于 OAuth 2.0 协议的轻量级规范,提供通过 API 进行身份交互的框架 ...

  8. Django 使用celery任务队列的配置

    celery 情景:用户发起request,并等待response返回.在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验,比如发送邮件.手机验证码等. 使用 ...

  9. javascript获取表单的各项值

    何谓表单? 表单是html页面中负责数据采集功能的部件,它往往由三个部分组成: 表单标签:<form></form> 用于声明表单的范围,位于表单标签中的元素将被提交.属性有m ...

  10. logging的使用方法

    logging的使用方法 1,简单使用方法 >>> import logging >>> logging.warning('this is a warning') ...