Django中ORM操作
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操作的更多相关文章
- 1122 django中orm操作
目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 ...
- Django中ORM操作提升性能
提升orm操作性能注意的点 优化一:尽量不查对象,能用values就是用values 直接使用对象查询的结果是5条sql语句 def youhua(request): # 使用对象查 obj_list ...
- 6月20日 Django中ORM介绍和字段、字段参数、相关操作
一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django之ORM操作
Django之ORM操作 前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计 ...
- Django之ORM操作(聚合 分组、F Q)
Django之ORM操作(聚合 分组.F Q) 聚合 aggregate()是QuerySet的一个终止子句,也就是说,他返回一个包含一些键值对的字典,在它的后面不可以再进行点(.)操作. 键的名 ...
- Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- django中orm使用的注意事项
必备小知识点 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者 ...
- Django之ORM操作(***)
Django之ORM操作(***) http请求的流程: url--> 视图view(模板+数据库) --> ORM的功能: 可以转换SQL语句,并做操作. ORM操作数据表: -创建表: ...
随机推荐
- velocity学习总结
什么是velocity velocity是一个基于Java的模板引擎,它可以实现彻底的前后端,前端不允许像jsp那样出现Java代码,而是利用context容器传递变量,在java代码里面我们可以往容 ...
- C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现
我们通过上一篇了解了爬虫具体要实现的工作之后,我们分析得出的网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出 ...
- jenkins简单安装及配置(Windows环境)
jenkins是一款跨平台的持续集成和持续交付.基于Java开发的开源软件,提供任务构建,持续集成监控的功能,可以使开发测试人员更方便的构建软件项目,提高工作效率. Windows平台下,一般安装方法 ...
- Linux探索之路1---CentOS入坑笔记整理
前言 上次跟运维去行方安装行内环境,发现linux命令还是不是很熟练.特别是用户权限分配以及vi下的快捷操作.于是决定在本地安装一个CentOS虚拟机,后面有时间就每天学习一点Linux常用命令. 作 ...
- python基础——特性(property)、静态方法(staticmethod)和类方法(classmethod)
python基础--特性(property) 1 什么是特性property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 import math class Circl ...
- python基础——列表推导式
python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for va ...
- Codeforces Round #426 (Div. 2)
http://codeforces.com/contest/834 A. The Useless Toy 题意: <,>,^,v这4个箭头符号,每一个都可以通过其他及其本身逆时针或者顺时针 ...
- mysql 千万级数据查询效率实践,分析 mysql查询优化实践--本文只做了一部分,仅供参考
数据量, 1300万的表加上112万的表 注意: 本文只做了部分优化,并不全面,仅供参考, 欢迎指点. 请移步tim查看,因为写的时候在tim写的,粘贴过来截图有问题,就直接上链接了. https ...
- 俄罗斯方块(2D、3D)
声明:这篇文章主要是参考几个别人的博文及源代码学习.参考文章: 1)http://blog.csdn.net/qian_f/article/details/19758671 2)http://yaca ...
- 1.0 添加WEB API项目并按注释生成文档(多项目结构)
1.新建ASP.NET 项目,模板选择如图 2.选择Web API,并选择不进行身份验证方式 成功后我们看到这个结果. 至于其它三种身份验证方式,不太适合我的使用.而且这种方式也可以在代码里去实现身份 ...