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中常用的语句的主要内容,如果未能解决你的问题,请参考以下文章

MySQL常用SQL语句综述

Django ORM操作数据库常用API

043:Django使用原生SQL语句操作数据库

mysql中sql语句分类及常用操作

django 对于mysql的常用操作(使用orm)

Django-orm操作的基础认识