Django的API操作mysql中常用的語句

來源:互聯網
上載者:User

標籤: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中常用的語句

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.