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. SUN平台服务器光纤共享存储互斥失败如何恢复数据?

    服务器数据恢复故障描述: 服务器最初的设计思路为将两台SPARC SOLARIS系统通过光纤交换机共享同一存储作为CLUSTER使用,正常情况下A服务器工作,当A服务器发生故障宕机后即可将其关机然后开 ...

  2. Mongodb 3 查询优化(慢查询Profiling)

    开启慢查询Profiling Profiling级别说明 0:关闭,不收集任何数据. 1:收集慢查询数据,默认是100毫秒. 2:收集所有数据 1.通过修改配置文件开启Profiling 修改启动mo ...

  3. linux下面根据不同的日期创建不同文件,一般用户数据库的备份的shell编程

    [root@www scripts]# vi sh03.sh #!/bin/bash # Program: #  Program creates three files, which named by ...

  4. java希尔排序

    java希尔排序 1.基本思想: 希尔排序也成为"缩小增量排序",其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插 ...

  5. 单点登录实现机制:桌面sso

    参考链接,感谢作者:https://zm10.sm-tc.cn/?src=l4uLj8XQ0IiIiNGckZ2TkJiM0ZyQktCZlo2Mi5uNmp6S0I/QysrJyszPztGXi5K ...

  6. 【iOS】 含tableView的ViewController基类的实现

    上篇博客写了ViewController的基类的实现,这篇博客主要写在BaseViewController的基础上实现一个含tableView控件的基类的实现,主要给包含tableView的页面来继承 ...

  7. 19届华为实习生笔试之判断iPv6地址类型

    题二: 答案: #coding=utf-8 import re,sys str = sys.stdin.readline().strip() def regex(str): result = &quo ...

  8. 基于DFS的拓扑排序

    传送门:Kahn算法拓扑排序 摘录一段维基百科上的伪码: L ← Empty list that will contain the sorted nodes S ← Set of all nodes ...

  9. 在VS2017中安装OpenGL

    由于VS2017支持直接下载有关openGL的库文件,因此给我们带来了很多方便之处,不需要单独下载了. 1.打开VS2017,并新建一个C++控制台项目 2.然后点击 项目-管理Nuget程序包, 点 ...

  10. Django REST framework+Vue 打造生鲜超市(六)

    七.用户登录与手机注册 7.1.drf的token (1)INSTALL_APP中添加 INSTALLED_APPS = ( ... 'rest_framework.authtoken' ) toke ...