Django的API操作mysql中常用的语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django的API操作mysql中常用的语句相关的知识,希望对你有一定的参考价值。
【背景】
增/删/改/查 如何操作数据库
导入数据库的模型
In [23]: from blog.models import People
【增加记录】--三种方法
方法一: 直接使用数据模对象的create函数
In [24]: People.objects.create(name=‘shuaige‘)
Out[24]: <People: People object>
注意:创建成功返回对象地址
方法二:
In [6]: record = People(name=‘choubaguai‘) In [7]: record.save()
方法三:
In [9]: record = People() In [10]: record.name =‘andy‘ In [11]: record.save()
【删除记录】--找对对象,使用delete() 进行删除
第一找出你要删除的对象集合(id大于2的)
In [19]: r_d = People.objects.filter(id__gt =2)
使用delete对象将其删除
In [20]: r_d.delete() Out[20]: (3, {‘blog.People‘: 3})
将返回珊瑚的条目数
【改记录】-先找出来,在将对象属性重新赋值
(将id=1的名字改成andyliu)
In [21]: People.objects.values_list() Out[21]: [(1, ‘liudehua‘), (2, ‘zhangxueyou‘)] In [22]: r_m = People.objects.get(id=1) In [23]: r_m.name = ‘andyliu‘ In [24]: r_m.save() In [25]: People.objects.values_list() Out[25]: [(1, ‘andyliu‘), (2, ‘zhangxueyou‘)]
【查】 这就相当于mysql中sql语句中的select语句,其中有很多字语句进行限制查询
1 获取所有记录对象
all_record = People.objects.all()
如果要获取对象值,需要先取出某一个对象,然后取出对象中的属性
In [32]: for record in all_record: ....: print(record.id) ....: print(record.name) ....: 1 andyliu 2 zhangxueyou
2 获取某个域为指定值的对象
In [11]: r_p = People.objects.get(name=‘zhangxueyou‘) In [12]: r_p.id Out[12]: 2
注意: 这个用法不常用,如果要用,你一定要保证,你查找的一定存在这样的一个记录,且必须是唯一,不然会报错哦
3 类似mysql中where进行的条件查询使用filter函数
第一: 整数的范围比较查询()
将id大于1的对象找出来,并以值列表的形式进行返回
In [15]: People.objects.filter(id__gt=1).values_list() Out[15]: [(2, ‘zhangxueyou‘), (6, ‘andyliu‘)]
gt | 大于 |
gte | 大于等于 |
lt | 小于 |
lte | 小于等于 |
ne | 不等于 |
in(也可以是其他数据类型) | 位于给定列表中: People.objects.filter(id__in=[1, 3, 4]) 返回一个 polls 列表(ID 值分别是 1或3或4). |
In [16]: People.objects.filter(name__in=[‘andyliu‘,‘zhangxueyou‘]) Out[16]: [<People: People object>, <People: People object>, <People: People object>]
4 多过滤条件查询,有一种方法是,多次使用filter函数即可
In [17]: People.objects.filter(id__gt=1).filter(name=‘andyliu‘) Out[17]: [<People: People object>] In [18]: People.objects.filter(id__gt=1).filter(name=‘andyliku‘) Out[18]: []
5 查找到的对象数据(即符合条件的记录的数目)
In [25]: People.objects.count()
Out[25]: 3
等于:
In [26]: People.objects.all().count()
Out[26]: 3
符合条件的长度
In [24]: People.objects.filter(name=‘andyliu‘).count() Out[24]: 2
6 order_by()函数,进行升序/降序
-负数表示要进行降序排序
In [14]: p = People.objects.order_by(‘-id‘) In [15]: for i in p: print(i.id) ....: 6 2 1
7 哈哈接下来可能是关于时间的查询(待续)
本文出自 “崔德华运维打工从业路” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1776023
以上是关于Django的API操作mysql中常用的语句的主要内容,如果未能解决你的问题,请参考以下文章