Django--ORM--模型增删改查--备忘
以上运算符都区分大小写,在这些运算符前加上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--模型增删改查--备忘的更多相关文章
- Django ORM 数据库增删改查
Django ORM 数据库增删改查 增 # 创建.增加数据(推荐) models.UserInfo.objects.create(username=') # 创建.增加数据 dic = {'} mo ...
- LinQ和ADO.Net增删改查 备忘
是否些倦了 SqlConnection conn=new SqlConnection();一系列繁冗的代码? 来试试Linq吧 查: using System.Data.SqlClient; name ...
- Python Django ORM基本增删改查
工程下的urls.py中增加如下: from cmdb import views as cmdb #要把你要操作的项目import进来 urlpatterns = [ url(r'orm', cmdb ...
- 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 ...
- Python学习---django之ORM的增删改查180125
模型常用的字段类型参数 <1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数 ...
- Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)
摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作,暂时全部 ...
- laravel orm进行增删改查
https://laravelacademy.org/post/9699.html 建议用DB门面直接操作数据库,因为ORM性能低.数据查询上面,ORM不会比DB差的,就比如with,是用了sql最基 ...
- ORM基本增删改查
将上一节建造好的数据库 引入Navicate copy_path找到数据表路径 再用navicat打开 创建好的db不只一张表,其中第一张是我们创建的可以用的表 ,其他都是django自带功能所需表 ...
- Django数据库操作(增删改查)
Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...
随机推荐
- 20165228 2017-2018-2 《Java程序设计》第2周学习总结
20165228 2017-2018-2 <Java程序设计>第2周学习总结 教材学习内容总结 标识符:名字 组成:字母/下划线/美元符号或数字 注意:标识符的第一个字符不能是数字字符,且 ...
- useradd密码无效
/********************************************************************** * useradd密码无效 * 说明: * 在测试Ubu ...
- Jaxb对xml报文头的小修小改
前言: 也是在实际工作中, 借助jaxb来实现xml到java对象的映射转换. 在实际应用中, 也遇到了一些有趣好玩的东西, 权当记录下来. 本文主要讲解jaxb如何生成约定的xml报文头的实现思路, ...
- 【letcode】5-LongestPalindromicSubstring
回文串 回文串(palindromic string)是指这个字符串无论从左读还是从右读,所读的顺序是一样的:简而言之,回文串是左右对称的.一般求解一个字符串的最长回文子串问题. problem:Lo ...
- 使用matlab和ISE 创建并仿真ROM IP核
前言 本人想使用简单的中值滤波进行verilog相关算法的硬件实现,由于HDL设计软件不能直接处理图像,大部分过程都是可以将图像按照一定的顺序保存到TXT文档中,经过Modelsim仿真后,处理的数据 ...
- github如何删除新建仓库(致新手)
github作为开发人员的必备用具.那么,作为一个新手如何删除github中建立的仓库呢? 1.以删除My test为例
- java实现各种排序算法
java实现各种排序算法 import java.util.Arrays; public class SomeSort { public static void main(String[] args) ...
- 针对 Intellij IDEA 2018.2 版本 异常退出问题
原文:https://blog.csdn.net/weixin_41370091/article/details/81322694 近日刚安装好Intellij IDEA(2018.2 Ultimat ...
- Go Example--通道
package main import "fmt" func main() { //string类型通道 messages := make(chan string) //往通道写入 ...
- flex布局居中无效果注意是否设置了宽度
<View style={{display:),backgroundColor:),alignItems:'center'}}> <JDTouchable style={styles ...