標籤: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) ....: 1andyliu2zhangxueyou
2 擷取某個域為指定值的對象
In [11]: r_p = People.objects.get(name=‘zhangxueyou‘) In [12]: r_p.idOut[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) ....: 621
7 哈哈接下來可能是關於時間的查詢(待續)
本文出自 “崔德華營運打工從業路” 部落格,請務必保留此出處http://cuidehua.blog.51cto.com/5449828/1776023
Django的API操作mysql中常用的語句