Django ORM单表查询必会13条】的更多相关文章

必知必会13条 操作下面的操作之前,我们实现创建好了数据表,这里主要演示下面的操作,不再细讲创建准备过程 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5&…
12.329 orm单表查询 import os if __name__ == '__main__': # 指定当前py脚本需要加载的Django项目配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "orm_demo.settings") import django django.setup() # 启动Django项目 from app01 import models #返回QuerySet对象的方法: r…
ORM单表查询,跨表查询,分组查询   单表查询之下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11.22.33的数据models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in models.Tb1.objects.filter(name__c…
模版语法 传值 视图函数向前端html页面传值,基本上所有的数据类型都可以渲染在前端页面上. views.py from django.shortcuts import render, redirect, HttpResponse # Create your views here. def index(request): int_1 = 123 str_2 = '测试' list_3 = [1, 2, 3] dict_4 = {'a': 1, 'b': 2} set_5 = {1, 2, 3,…
这几天重新学习了一下django的orm,以此作为记录来分享. Part1:修改配置,生成表 在写数据和查数据之前,首先先得把django配置一下,具体配置如下: 1.先在公共项目的settings中配置数据库信息 2.在公共项目的__init__.py文件中导入pymysql并写入一行代码 3.在需要生成表的app的models.py中写生成的表 from django.db import models # Create your models here. class Book(models.…
目录 1.ORM 2.ORM单表增删改查 13个必知必会的查询接口 filter基于双下划线的模糊查询 3.ORM多表增删改查 ORM 什么是ORM? ORM(object relational mapping) 对象关系映射,做数据库操作的 ORM中的对象关系映射 ORM的实际使用 1.首先,我们在django项目的app01/models.py中写入如下内容 class Book(models.Model): # id 这行可写可不写,如果不写的话,系统也会自动添加上去 id = model…
ORM多表查询 创建表结构: from django.db import models # 创建表结构 # Create your models here. class Class_grade(models.Model): """年级表""" gid = models.AutoField(primary_key=True) gname = models.CharField(max_length=32) class Teacher(models.M…
一.单表查询 1. 返回queryset对象的查询 all() 以列表形式返回全部queryset对象 filter(**kwargs) 筛选 exclude(**kwargs) 排除 reverse() 反转 order_by(field)   排序 distinct() 去重 2. 特殊的queryset对象 values(field)   返回一个可迭代的装有字典的列表 values_list(field) 返回一个可迭代的装有元组的列表 3. 返回具体对象 get(**kwargs) 只…
1.filter中的单表查询 # 查询id>1且id<4的结果 ret = models.Person.objects.filter(id__gt=1,id__lt=4) print(ret) # 查询id在[1,3,5,7] ret = models.Person.objects.filter(id__in=[1,3,5,7]) print(ret) # contians # icontains忽略大小写 ret = models.Person.objects.filter(name__co…
1.ORM介绍 ORM是“对象-关系-映射”的简称 映射关系: mysql---------Python 表名----------类名 字段----------属性 表记录--------实例化对象 ORM功能: 操作表:创建,修改,删除 操作数据行:增删改查 此外django没办法帮我们创建数据库,只能自己创建完后,再让django去链接 2.相关配置 如果要将模型转化为mysql数据库中的表,需要在setting中配置: DATABASES = { 'default': { 'ENGINE'…
一.创建表 1.创建模型: 创建名为book的app,在book下的models.py中创建模型: from django.db import models # Create your models here. class Book(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64) pub_data = models.DateField() price = m…
set() 更新model对象的关联对象 book_obj=models.Book.objects.first() book_obj.authors.set([2,3]) 把book_obj这个对象重新设置关联对象为作者id为2,3的对象 remove() 从关联对象中移除被执行的对象 book_obj=models.Book.objects.first() book_obj.authors.remove(3) 移除这个对象关联的id为3的作者 clear() 从关联对象集中移除一切对象. bo…
从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet 1. 查看Django QuerySet执行的SQL .query.__str__()或 .query属性打印执行的sql语句 from quicktool.models import User from django.http import HttpResponse Creat = User.objects.all().filter(created=1557222940).query.__str__() return Ht…
基于双下划线查询 根据存的时候,字段的数据格式衍生的查询方法 1.年龄大于35岁 res = models.AuthorDetails.objects.filter(age__lt=80) print(res) # 输出结果 <QuerySet [<AuthorDetails: yuhua@dd>, <AuthorDetails: cao@di.com>, <AuthorDetails: gao@doi.com>]> 2.年龄小于35岁 res = mode…
db_index=True  如果设置该字段就可以设置索引 auto_now_add  代表设置创建时候的时间 auto_now   每次更新数据记录时会更新该字段 to_field 设置要关联表的字段,一般是ID related_time 反向操作时,使用的字段名,用于代替原反向查询时的表名_set class Classes(models.Model): name = models.CharField(max_length=32) class Student(models.Model): n…
在model.py中: class B1(models.Model): u1= models.CharField(max_length=32) #多 class B2(models.Model): f1 = models.CharField(max_length=32) f2= models.IntegerField() f3 = models.ForeignKey('B1') 在views.py中: #B2中 外键f3 指向B1中u1=‘x’ 的所有对象的列表 obj_list = B2.ob…
###############    单表操作-添加数据    ################ import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ORM.settings") import django django.setup() from app01 import models # 一.添加表记录 # 对于单表有两种方式 # 添加数据的两种…
Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5.1 查询api 5.2 基于双下划线的模糊查询 / filter双下划线查询 总结: 1. orm使用流程 配置mysql # django 连接mysql,settings配置文件中 DATABASES = { 'default': { 'ENGINE': 'django.db.backends…
一.数据类型 常用的数据类型如下: 整数:int,bit 小数:decimal 字符串:varchar,char 日期时间: date, time, datetime 枚举类型(enum) 特别说明的类型如下: decimal表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位. char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '. varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab' 对于图片.…
ORM 操作 必知必会13条 import os # if __name__ == '__main__': # 当前文件下执行 os.environ.setdefault('DJANGO_SETTINGS_MODULE','orm_p.settings') import django django.setup() # 初始设置 脚本 加载了Django环境 from app01 import models ret = models.Person.objects.all() # QuerySet…
单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2.auto_now_add:在创建数据的时候,会自动将创建的时间记录下来,后续的修改不影响该字段 增.删.改.查 增 方式1:create book_obj =models.Book.objects.create(title='三国',price=19.99,create_time='2019-11…
from django.test import TestCase # Create your tests here. import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day53.settings") import django django.setup() from app01 import model…
测试脚本配置 ''' 当你只是想测试django中的某一个文件内容 那么你可以不用书写前后端交互的形式而是直接写一个测试脚本即可 脚本代码无论是写在应用下的test.py还是单独开设py文件都可以 ''' # 测试环境的准备 去manage.py中拷贝前四行代码到测试文件 然后自己写两行 impor…
数据库开发-Django ORM的单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询集 1>.查询集相关概述 查询会返回结果的集,它是django.db.models.query.QuerySet类型. 它是惰性求值,和SQLAlchemy一样.结果就是查询的集. 它是可迭代对象. 惰性求值: 创建查询集不会带来任何数据库的访问,直到调用方法使用数据时,才会访问数据库.在迭代.序列 化.if语句中都会立即求值. 缓存: 每一个查询集都包含一个缓存,来最小化对数据…
基于双下划线的查询 # 价格 大于 小于 大于等于 小于等于 filter(price__gt=') # 筛选出大于90 filter(price__lt=') # 筛选出小于90 filter(price_gte=') # 筛选出大于等于90的 filter(price_lte=') # 筛选出小于等于90的 # 存在与几个条件中 filter(price__in=[']) #在某个返回中 filter(price__range=[50,90]) # 模糊查询 filter(title__co…
MVC M: model 模型 与数据库交互 V: view 视图 HTML C:controller 控制器 流程 和 业务逻辑 MTV M:model ORM T:template 模板 HTML V:view 视图 业务逻辑 Django中的视图 FBV  def add_publisher(request,*args,**kwargs):  # 逻辑  return  response urls.py   url(r'^add_publisher',add_publisher ) CBV…
1.什么是ORM ORM的全称是Object Relational Mapping,即对象关系映射.它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作.因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作. ORM映射关系: 表名 <-------> 类名 字段 <-------> 属性 表记录 <-------> 类实例对象 在python中ORM将一个Python的对象映射为数…
上篇带大家简单做了一下图书表的创建.简单的查看和删除,今天会先简单介绍添加和修改,因为添加和修改与删除一样都很简单,本篇会相对多介绍一点单表查询,大家都知道数据库中查询是最重要的一部分,毕竟无论是修改还是删除等很多操作都是建立在查数据的基础上. 今天所有例子用的延续上篇的数据库,book表也是延续上篇,接着昨天的建表,删除等功能扩展其他功能,所以有所疑问的可以先看上篇随笔: http://www.cnblogs.com/liluning/p/7729607.html 一.添加 1.添加表记录 1…
一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",course="python",birth="2000-9-9",fenshu=80) Frank_obj.save() # 方式二: models.Student.objects.create(name ="海燕",course="python…
上篇带大家简单做了一下图书表的创建.简单的查看和删除,今天会先简单介绍添加和修改,因为添加和修改与删除一样都很简单,本篇会相对多介绍一点单表查询,大家都知道数据库中查询是最重要的一部分,毕竟无论是修改还是删除等很多操作都是建立在查数据的基础上. 本篇导航: 添加 单表查询 修改 今天所有例子用的延续上篇的数据库,book表也是延续上篇,接着昨天的建表,删除等功能扩展其他功能,所以有所疑问的可以先看上篇随笔: http://www.cnblogs.com/liluning/p/7729607.ht…