博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 之单个mysql表使用
阅读量:4509 次
发布时间:2019-06-08

本文共 3553 字,大约阅读时间需要 11 分钟。

1. mysql 表使用的功能有: 增 删  改 查  这几大功能, 但是mysql 和django 对接之后,使用的语法不是原生的SQL语法.

 

2. 增功能的实现:

User.objects.create(name='Owen', age=10, birthday='2008-08-08')

3. 查的功能 使用的是filter 关键词

# 操作的结果拥有是一个listusers = User.objects.filter(name='Owen')

4. 改的功能 通过django的语句可以直接修改mysql的数据

User.objects.filter(name='Owen').update(name='Owen_best')

5. 删除的功能

User.objects.filter(name='Owen').delete()

6. 单表操作对应的函数: 很重要!!!!重视!!!

1. all():查询所有结果list,支持正向索引取值[i],支持索引切片[m:n]2. filter(**kwargs):查询满足条件的所有结果list              3. get(**kwargs):查询满足条件的唯一对象obj,查询结果不为obj则抛出异常          4. exclude(**kwargs):查询满足条件的对立面的所有结果list5. order_by(*field):查询按照指定字段进行排序后的所有结果list,'tag_name'代表正序,'-tag_name'代表降序6. reverse():反转排序查询的所有结果list7. count():统计返回查询结果list的长度8. first():返回查询结果中的第一个对象obj9. last():返回查询结果中的最后一个对象obj10. exists():判断查询结果是否存在,值为布尔类型11. values(*field):按照指定字段(们)进行查询,返回存放包含字段(们)的字典的列表list12. values_list(*field):同values类似,返回存放数据的元组的列表list13. distinct():从查询结果中剔除重复字段(一般和values结合使用)
很重要的知识点

7. 模糊查询案例:

user_list = User.objects.filter(id__gte=1)    #案例# 整型相关age__exact=8  # 确切匹配8age__in=[8, 10]  # 8或10age__gt=8  # 大于8age__gte=8  # 大于等于8age__lt=8  # 小于8age__lte=8  # 小于等于8age__range=[8, 10]  # 8到10之间age__isnull=0|1  # 0:is not null | 1:is null# 字符串相关name__startswith  # 后方模糊匹配name__endswith  # 前方模糊匹配name__contains  # 前后方均模糊匹配name__regex  # 正则匹配name__istartswith  # 不区分大小写后方模糊匹配(i开头就是不区分大小写)# 时间相关birthday__year=2008  # 时间年份模糊匹配
模糊查询

8. Django特有的查询模式, F模式 查询与 Q查询模式

from django.db.models import F, Q# F基于计算 F('字段名')# 案例一:将id为1的结果年龄增加1User.objects.filter(id=1).update(age=F('age')+1)# 案例二:查询id是年龄1/4的结果user = User.objects.filter(id=F('age')/4)# Q基于关系 Q('字段条件')# 与User.objects.filter(Q(id=1) & Q(age=10))  # id=1 并且 age=10# 或User.objects.filter(Q(id=1) | Q(id=2))  # id=1 或 id=2# 非User.objects.filter(~Q(id=1))  # id 不为 1

 9. 单表查询案例分析使用

# 2. 查询所有的,并支持正向 的切片工作# 支持正向所有(不支持反向索引,原因是数据过多时,不能将数据一次性查出,需要分批次按需求查出)# u5 = User.objects.all()[0]# print(u5)# 3.支持切片## u_l1 = User.objects.all()[1:3]# print(u_l1)# print(u_l1.query)# 4. 查询结果 出来并取反: exclude# # 2. exclude(**kwargs):查询满足条件的对立面的所有结果list# u_l2 = User.objects.exclude(id=1)# print(u_l2)# print(u_l2.query)# # 显示除了id=1 的所有成员信息## 5. 查询出来的列表组,并进行升序 或降序 :order_by## # 3. order_by(*field):查询按照指定字段进行排序后的所有结果list,'tag_name'代表正序,'-tag_name'代表降序# u_l3 = User.objects.order_by('-id')# print(u_l3)# print(u_l3.query)# #('id') 是根据id 进行升序排列# #('-id') 是根据id 进行降序排列## 6.统计查询出来的列表的里面的个数: count()# # 5. count():统计返回查询结果list的长度# count = User.objects.all().count()# print(count)## 7. 判断查询出来的是否存在: exists()# # 6. exists():判断查询结果是否存在,值为布尔类型# res = User.objects.filter(id=10).exists()# print(res)### 8. 通过指定的字段进行查询, 结果还是为列表信息: values# # 7. values(*field):按照指定字段(们)进行查询,返回存放包含字段(们)的字典的列表list# u_l5_dic = User.objects.values('name', 'age')[1:3]# # print(u_l5_dic.query)# print(u_l5_dic)# # 注意使用values 不能使用你query   优化信息## 9.通过指定的字段进行查询, 结果还是为列表信息: values_list  显示的是元祖形式, 可以切片得到想要的对象属性# # 8. values_list(*field):同values类似,返回存放数据的元组的列表list# u_l6_dic = User.objects.values_list('name', 'age')[1:3]  # [0][1] 第一个元组中的第二个数据,年龄# print(u_l6_dic)## #[1:3]是查询出来的取 1,2 元祖形式# #[0][1] 是因为查询出来有2个结果, [0] 是取第一个结果, [1] 是取第一个结果里面的第二个属性## 字符串# u_l12 = User.objects.filter(name__startswith='X')   # 取开头为X# print(u_l12)# u_l13 = User.objects.filter(name__istartswith='x')  # 取开头不是为x的信息,  前面有i 就是取反的意思# print(u_l13)# u_l14 = User.objects.filter(name__endswith='hh')# print(u_l14)# u_l15 = User.objects.filter(name__icontains='g')        #模糊取值# print(u_l15)# u_l16 = User.objects.filter(name__iregex="[a-zA-Z0-9]{1,}") #正则表达式# print(u_l16)
案例分析

 

转载于:https://www.cnblogs.com/gukai/p/10772447.html

你可能感兴趣的文章
连通块
查看>>
servlet.txt笔记
查看>>
jquery设置select选中
查看>>
今天说一下DML触发器的顺序
查看>>
Memcached学习(一)--网络模型
查看>>
FragmentTransaction add 和 replace 区别 转
查看>>
jQuery 效果方法
查看>>
STM32物联网通信WIFI
查看>>
java反射案例详解
查看>>
MAGENTO 与 reindexer
查看>>
数字,字符串,列表及其内置方法
查看>>
iOS遍历数组的同时删除元素
查看>>
小强的HTML5移动开发之路(16)——神奇的拖放功能
查看>>
zookeeper FastLeaderElection
查看>>
Jquery AJAX如何使用Promise/Deferred实现顺序执行?
查看>>
进度条
查看>>
maven 常用命令
查看>>
用户画像
查看>>
HTTP报文(面试会问开发时常用的报文头格式)
查看>>
机器学习从业人员到底做什么?
查看>>