以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,
如iexact、icontains、istartswith、iendswith.
insert into tb_bookinfo()values()
新增--save
book = BooksInfo(
bookname = '红楼梦',
bookpubtime = date(1930,9,1),
bookauthor = '曹雪芹'
)

character = CharacterInfo(
charactername = '猪八戒',
charactergender = 1,
characterage = 55,
chac_description = '猪悟能',
cbook = book
)

新增--create
CharacterInfo.objects.create(
charactername = '女儿国国王',
charactergender = 1,
characterage = 20,
chac_description = '女儿美',
cbook = book
)

查询多条记录--返回的是列表
BooksInfo.objects.all()
CharacterInfo.objects.all()

查询记录条数
BooksInfo.objects.count()
CharacterInfo.objects.count()

查询单条记录
book = BooksInfo.objects.get(bookname = '西游记')
BooksInfo.objects.get(id=1)
BooksInfo.objects.filter(id__exact=1)

模糊查询
BooksInfo.objects.filter(bookname__contains='梦')
BooksInfo.objects.filter(bookname__endswith='义')
BooksInfo.objects.filter(bookname__startswith='西')
BooksInfo.objects.filter(bookname__istartswith='西')

空查询
BooksInfo.objects.filter(bookname__isnull = False)

范围查询
BooksInfo.objects.filter(id__in=[1,2,4])

属性与常量之间的比较查询:大于,大于等于,小于,小于等于,exclude
BooksInfo.objects.filter(id__gt=3)
BooksInfo.objects.filter(id__gte=2)
BooksInfo.objects.filter(id__lt=3)
BooksInfo.objects.filter(id__lte=3)
BooksInfo.objects.exclude(id=1)

日期查询
year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算
BooksInfo.objects.filter(bookpubtime__year=1930)
BooksInfo.objects.filter(bookpubtime__gt=date(1930,9,1))

属性与属性的比较:F(属性名)
from django.db.models import F
BooksInfo.objects.filter(bookcommentcount__gte=F('bookreadcount'))
BooksInfo.objects.filter(bookcommentcount__gte=F('bookreadcount')*2)

and 查询
BooksInfo.objects.filter(bookauthor__contanins='罗',bookname__startswith='三')

or查询Q(属性名__运算符=值)使用&、|连接,&表示逻辑与,|表示逻辑或,~操作符表示非not
BooksInfo.objects.filter(Q(bookreadcount__gt=300)|Q(bookname__contains='吴'))
BooksInfo.objects.filter(~Q(pk=3))
BooksInfo.objects.filter(~Q(id=3))

聚合查询--返回的是字典
BooksInfo.objects.aggregate(Sum('bookreadcount'))
使用count时一般不使用aggregate()过滤器
BooksInfo.objects.count()

排序
BooksInfo.objects.all().order_by('bookreadcount')
BooksInfo.objects.all().order_by('-bookreadcount')

关联查询语法:一到多,多的模型类名小写
一对应的模型类对象.多对应的模型类名小写_set
b = BooksInfo.objects.get(id=1)
b.characterinfo_set.all()

多到一
c = CharacterInfo.objects.get(id=1)
c.cbook
访问一模型的id:多对应的模型类对象.关联类属性_id
c.cbook_id

关联过滤查询:多的模型类名小写
BooksInfo.objects.filter(characterinfo__charactername='贾宝玉')
BooksInfo.objects.filter(characterinfo__charactername__contains='玉')
BooksInfo.objects.filter(characterinfo__characterage__gt=30)

修改:单条修改
c = CharacterInfo.objects.get(charactername='猪八戒')
c.charactername='猪哥哥'
c.save()
批量修改
CharacterInfo.objects.filter(charactername='林黛玉').update(charactername='林妹妹')

删除:
模型类对象delete
c = CharacterInfo.objects.get(id=3)
c.delete()
模型类.objects.filter().delete()
CharacterInfo.objects.filter.(id=14).delete()

Django查询结果集
BooksInfo.objects.all()
BooksInfo.objects.filter(bookreadcount__gt=30).order_by('bookpubtime')
b = BooksInfo.objects.exclude(bookname__contains='三')
确定查询集中是否有数据
b.exists()

Django--ORM--模型增删改查--备忘的更多相关文章

  1. Django ORM 数据库增删改查

    Django ORM 数据库增删改查 增 # 创建.增加数据(推荐) models.UserInfo.objects.create(username=') # 创建.增加数据 dic = {'} mo ...

  2. LinQ和ADO.Net增删改查 备忘

    是否些倦了 SqlConnection conn=new SqlConnection();一系列繁冗的代码? 来试试Linq吧 查: using System.Data.SqlClient; name ...

  3. Python Django ORM基本增删改查

    工程下的urls.py中增加如下: from cmdb import views as cmdb #要把你要操作的项目import进来 urlpatterns = [ url(r'orm', cmdb ...

  4. python-django使用ORM模型增删改查CRUD

    from weibo.models import WeiboUser as User user_obj = User.objects.get(pk=1) user_obj.pk Out[4]: 1 u ...

  5. Python学习---django之ORM的增删改查180125

    模型常用的字段类型参数 <1> CharField        #字符串字段, 用于较短的字符串.        #CharField 要求必须有一个参数 maxlength, 用于从数 ...

  6. Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)

    摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作,暂时全部 ...

  7. laravel orm进行增删改查

    https://laravelacademy.org/post/9699.html 建议用DB门面直接操作数据库,因为ORM性能低.数据查询上面,ORM不会比DB差的,就比如with,是用了sql最基 ...

  8. ORM基本增删改查

    将上一节建造好的数据库 引入Navicate copy_path找到数据表路径 再用navicat打开 创建好的db不只一张表,其中第一张是我们创建的可以用的表  ,其他都是django自带功能所需表 ...

  9. Django数据库操作(增删改查)

    Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...

随机推荐

  1. Failed to start component [StandardEngine[Catalina].stadardHost[loclahost].StandardContent[/GarageMgtB]]

    错误如图: 新导入的一个web工程,在problems中显示错误是:Target runtime Apache Tomcatv8.0 is not defined. 终于找到解决方法.方法是:在工程目 ...

  2. HDU2019数列有序!

    Problem Description 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序. Input 输入数据包含多个测 ...

  3. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块)   一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...

  4. Linux Distribution 分支

    https://distrowatch.com/ DistroWatch是一个包含了各种Linux发行版及其他自由/开放源代码的类Unix操作系统的新闻.人气排名.以及其他一般信息等的网站.它包含了数 ...

  5. webapi core2.1 IdentityServer4.EntityFramework Core进行配置和操作数据

    https://identityserver4.readthedocs.io/en/release/quickstarts/8_entity_framework.html 此连接的实践 vscode ...

  6. hdu2389 Rain on your Parade 二分图匹配--HK算法

    You’re giving a party in the garden of your villa by the sea. The party is a huge success, and every ...

  7. Go Example--通道

    package main import "fmt" func main() { //string类型通道 messages := make(chan string) //往通道写入 ...

  8. LG5901 【模板】欧拉定理

    题意 题目描述 给你三个正整数,$a,m,b$,你需要求: $a^b \mod m$ 输入输出格式 输入格式: 一行三个整数,$a,m,b$ 输出格式: 一个整数表示答案 输入输出样例 输入样例#1: ...

  9. architecture and business process modelling

    bpmn 架构相关的文章: 转自:https://www.heflo.com/definitions/architecture-business-process-modeling/ BPMN Mode ...

  10. deno学习三 官方提供的方便deno 安装方式

    早起deno 使用了golang 开发,同时需要protobuf 进行数据的序列化以及反序列化处理 当前的deno 已经使用rust 进行了开发,同时官方提供的安装方式也很方便了,不需要 那么复杂的编 ...