最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django框架ORM數(shù)據(jù)庫操作實(shí)例詳解

 更新時間:2019年11月07日 11:31:51   作者:HMMHMH  
這篇文章主要介紹了Django框架ORM數(shù)據(jù)庫操作,結(jié)合實(shí)例形式詳細(xì)分析了Django框架ORM數(shù)據(jù)庫基本增刪改查與相關(guān)函數(shù)使用技巧,需要的朋友可以參考下

本文實(shí)例講述了Django框架ORM數(shù)據(jù)庫操作。分享給大家供大家參考,具體如下:

測試數(shù)據(jù):BookInfo表

PeopleInfo表

一.增加

1.save:

對象 = 模型類(
字段名 = 值,
字段名 = 值,
…
)

對象.save()

例:

>>> book = BookInfo(
...     name='python入門',
...     pub_date='2010-1-1'
...   )
>>> book.save()
>>> book
<BookInfo: python入門>

2.create:

模型類.objects.create(
字段名 = 值,
字段名 = 值,
…
)

例:

>>> PeopleInfo.objects.create(
...     name='itheima',
...     book=book
...   )
<PeopleInfo: itheima>

二.刪除

1.模型類對象delete:

對象 = 模型類.objects.get(條件)
對象.delete()

例:

>>> person = PeopleInfo.objects.get(name='傳智播客')
>>> person.delete()
(1, {'book.PeopleInfo': 1})

2.模型類.objects.filter().delete():

模型類.objects.filter(條件).delete()

例:

>>> BookInfo.objects.filter(name='python入門').delete()
(1, {'book.BookInfo': 1, 'book.PeopleInfo': 0})

三.修改

1.save:

對象 = 模型類.objects.get(條件)
對象.屬性 = 值
對象.save()

例:

>>> person = PeopleInfo.objects.get(name='itheima')
>>> person.name = 'itcast'
>>> person.save()
>>> person
<PeopleInfo: itcast>

2.update:

模型類.objects.filter(條件).update(屬性=值) (返回的是受影響的行數(shù))

例:

>>> PeopleInfo.objects.filter(name='itcast').update(name='傳智播客')

四.查詢

1.基本查詢

get:查詢單一結(jié)果,不存在會拋出DoesNotExist異常。(查詢結(jié)果不是1個也會報(bào)錯)
all:查詢多個結(jié)果。
count:查詢結(jié)果數(shù)量。

用法:模型類.objects.get/all/count()

2.過濾查詢

filter:過濾出多個結(jié)果
exclude:排除掉符合條件剩下的結(jié)果
get:過濾出單一結(jié)果

3.過濾條件語法

用法:屬性名稱__比較運(yùn)算符 = 值
exact:相等

例:查詢編號為1的圖書。

BookInfo.objects.filter(id__exact=1)

可簡寫為:

BookInfo.objects.filter(id=1)

contains:包含

例:查詢書名包含'傳'的圖書。

BookInfo.objects.filter(name__contains='傳')
<QuerySet [<BookInfo: 射雕英雄傳>]>

startswith/endswith:以指定值開頭/結(jié)尾

例:查詢書名以'部'結(jié)尾的圖書

>>> BookInfo.objects.filter(name__endswith='部')
<QuerySet [<BookInfo: 天龍八部>]>

isnull:是否為空

例:查詢書名為空的圖書。

>>> BookInfo.objects.filter(name__isnull=True)
<QuerySet []>

in:是否包含在范圍內(nèi)

例:查詢編號為1或3或5的圖書

>>> BookInfo.objects.filter(id__in=[1,3,5])
<QuerySet [<BookInfo: 射雕英雄傳>, <BookInfo: 笑傲江湖>]>

gt/gte/lt/lte:比較查詢,分別為大于,大于等于,小于,小于等于

例:查詢編號大于3的圖書

>>> BookInfo.objects.filter(id__gt=3)
<QuerySet [<BookInfo: 雪山飛狐>]>

year/month/day/week_day/hour/minute/second:時間日期

例:查詢1980年發(fā)表的圖書。

>>> BookInfo.objects.filter(pub_date__year=1980)
<QuerySet [<BookInfo: 射雕英雄傳>]>

4.F對象和Q對象

F對象:用來比較兩個屬性(使用前需要導(dǎo)入)
用法:F(屬性名)
例:查詢閱讀量大于等于評論量的圖書。

>>> from django.db.models import F
>>> BookInfo.objects.filter(readcount__gt=F('commentcount'))
<QuerySet [<BookInfo: 雪山飛狐>]>

Q對象:實(shí)現(xiàn)邏輯或or的查詢
用法:Q(屬性名__運(yùn)算符=值),也可在前面加~表示not
例:查詢閱讀量大于20,或編號小于3的圖書

>>> BookInfo.objects.filter(Q(readcount__gt=20)|Q(id__lt=3))
<QuerySet [<BookInfo: 射雕英雄傳>, <BookInfo: 天龍八部>, <BookInfo: 雪山飛狐>]>

5.聚合函數(shù)

聚合函數(shù):可使用aggregate()過濾器調(diào)用聚合函數(shù)(Avg,Count,Max,Min,Sum)
用法:模型類.objects.aggregate(聚合函數(shù)(字段名))
例:查詢圖書的總閱讀量。

>>> from django.db.models import Sum
>>> BookInfo.objects.aggregate(Sum('readcount'))
{'readcount__sum': 126}

返回值為字典類型:{'屬性名__聚合類小寫':值}

注意:使用count一般不用使用過濾器

例:查詢圖書總數(shù)。

BookInfo.objects.count()

返回值為一個數(shù)字

6.排序函數(shù)

用法:模型類.objects.all().order_by(屬性名)
默認(rèn)升序排序,屬性名前加-為降序
例:

# 默認(rèn)升序
>>> BookInfo.objects.all().order_by('readcount')
<QuerySet [<BookInfo: 射雕英雄傳>, <BookInfo: 笑傲江湖>, <BookInfo: 天龍八部>, <BookInfo: 雪山飛狐>]>
# 降序
>>> BookInfo.objects.all().order_by('-readcount')
<QuerySet [<BookInfo: 雪山飛狐>, <BookInfo: 天龍八部>, <BookInfo: 笑傲江湖>, <BookInfo: 射雕英雄傳>]>

7.關(guān)聯(lián)查詢

一到多的訪問:

用法:一對應(yīng)的模型類對象.多對應(yīng)的模型類名小寫_set
例:查詢id為1的書籍人物

>>> book = BookInfo.objects.get(id=1)
>>> book.peopleinfo_set.all()
<QuerySet [<PeopleInfo: 郭靖>, <PeopleInfo: 黃蓉>, <PeopleInfo: 黃藥師>, <PeopleInfo: 歐陽鋒>, <PeopleInfo: 梅超風(fēng)>]>

多到一的訪問:

用法:多對應(yīng)的模型類對象.多對應(yīng)的模型類中的關(guān)系類.屬性名
例:查詢id為1的人物的書籍

>>> person = PeopleInfo.objects.get(id=1)
>>> person.book.name
‘射雕英雄傳'

關(guān)聯(lián)過濾查詢:

用法:關(guān)聯(lián)模型類名小寫__屬性名__條件運(yùn)算符=值
例:查詢圖書,要求圖書中人物的描述包含"八"

>>> book = BookInfo.objects.filter(peopleinfo__description__contains='八')
>>> book
<QuerySet [<BookInfo: 射雕英雄傳>, <BookInfo: 天龍八部>]>

查詢圖書閱讀量大于30的所有人物

>>> people = PeopleInfo.objects.filter(book__readcount__gt=30)
>>> people
<QuerySet [<PeopleInfo: 喬峰>, <PeopleInfo: 段譽(yù)>, <PeopleInfo: 虛竹>, <PeopleInfo: 王語嫣>, <PeopleInfo: 胡斐>, <PeopleInfo: 苗若蘭>, <PeopleInfo: 程靈素>, <PeopleInfo: 袁紫衣>]>

希望本文所述對大家基于Django的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 解讀Python編程中的命名空間與作用域

    解讀Python編程中的命名空間與作用域

    這篇文章主要介紹了Python編程中的命名空間與作用域,是Python入門學(xué)習(xí)中的重要知識,需要的朋友可以參考下
    2015-10-10
  • Django中使用Celery的方法步驟

    Django中使用Celery的方法步驟

    這篇文章主要介紹了Django中使用Celery,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Elasticsearches之python使用及Django與Flask集成示例

    Elasticsearches之python使用及Django與Flask集成示例

    這篇文章主要為大家介紹了Elasticsearches之python使用及Django與Flask集成示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • python TKinter獲取文本框內(nèi)容的方法

    python TKinter獲取文本框內(nèi)容的方法

    今天小編就為大家分享一篇python TKinter獲取文本框內(nèi)容的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 使用Python webdriver圖書館搶座自動預(yù)約的正確方法

    使用Python webdriver圖書館搶座自動預(yù)約的正確方法

    這篇文章主要介紹了使用Python webdriver圖書館搶座自動預(yù)約的正確方法,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • python之pandas用法大全

    python之pandas用法大全

    本文講解了python的pandas基本用法,大家可以參考下
    2018-03-03
  • python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理

    python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理的解釋,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 一個基于flask的web應(yīng)用誕生(1)

    一個基于flask的web應(yīng)用誕生(1)

    這篇文章主要為大家詳細(xì)介紹了基于flask的web應(yīng)用誕生,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • python的scipy.stats模塊中正態(tài)分布常用函數(shù)總結(jié)

    python的scipy.stats模塊中正態(tài)分布常用函數(shù)總結(jié)

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python的scipy.stats模塊中正態(tài)分布常用函數(shù)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • python操作Excel神器openpyxl看這一篇就夠了

    python操作Excel神器openpyxl看這一篇就夠了

    Python使用openpyxl讀寫excel文件這是一個第三方庫,可以處理xlsx格式的Excel文件,下面這篇文章主要給大家介紹了關(guān)于python操作Excel神器openpyxl的相關(guān)資料,需要的朋友可以參考下
    2023-04-04

最新評論

弥勒县| 昌乐县| 长乐市| 团风县| 崇州市| 竹溪县| 平乡县| 错那县| 隆回县| 苏尼特右旗| 满城县| 舞阳县| 新沂市| 浠水县| 左云县| 洪湖市| 古田县| 桐庐县| 长阳| 晋江市| 乌兰浩特市| 临汾市| 沾益县| 尼木县| 游戏| 北碚区| 额尔古纳市| 莱州市| 宜春市| 庆云县| 宜章县| 抚州市| 鹤庆县| 泾源县| 宣恩县| 宜春市| 上蔡县| 铁岭市| 西吉县| 阜宁县| 盖州市|