溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django 之 ORM 單表查詢方法使用

發布時間:2020-07-13 20:01:35 來源:網絡 閱讀:414 作者:wx592bc92b285c7 欄目:編程語言

一、在Django項目上運行python文件查詢數據庫

import os

if __name__ == '__main__':
    #加載Django項目的配置信息
    os.environ.setdefault("DJANGO_SETTINGS_MODULE","testinclude.settings")
    #導入Django,并啟動Django項目
    import django
    django.setup()

    from ormtest import models

    #查詢所有作者
    all_author = models.Author.objects.all()
    print(all_author)

    #get查詢某個人,當值不存在時會報錯
    person = models.Author.objects.get(id=7)
    print(person)

    print("filter".center(60,"*"))
    #filter返回數據為一個列表,當值不存在時,不會報錯,返回一個空的列表
    person = models.Author.objects.filter(id=7)
    print(person)
    print(person[0])

    #exclude 返回id不等于1的所有值,排隊法
    print("exclude".center(60,"*"))
    person = models.Author.objects.exclude(id=1)
    print(person)

    print("values返回值".center(60,"*"))
    person = models.Author.objects.values()
    print(person)

    print("orderby按照指定的字段排序")
    person = models.Author.objects.all().order_by("id")
    print(person)

    print("count統計匹配的數量".center(60,"*"))
    count = models.Author.objects.all().count()
    print(count)

    print("first返回第一行數據".center(60,"*"))
    person = models.Author.objects.all().first()
    print(person)

    print("last返回最后一行數據".center(60, "*"))
    person = models.Author.objects.all().last()
    print(person)

    print("查詢id大于4,小于6的值".center(50,"*"))
    person = models.Author.objects.filter(id__gt=5,id__lt=7)
    print(person)

    print("in查詢包括列表中的數或not_in".center(50,"*"))
    person = models.Author.objects.filter(id__in=[3,5,7])
    print(person)

    print("contains包含某些值".center(50,"*"))
    person = models.Author.objects.filter(name__contains="周")
    print(person)

    print("range相當于sql語句中的between and 5<7".center(50,"*"))
    person = models.Author.objects.filter(id__range=[5,7])
    print(person)

程序執行結果:

<QuerySet [<Author: author_name:小白>, <Author: author_name:小周>, <Author: author_name:小紅>, <Author: author_name:小綠>, <Author: author_name:小光>]>
author_name:小光
***************************filter***************************
<QuerySet [<Author: author_name:小光>]>
author_name:小光
**************************exclude***************************
<QuerySet [<Author: author_name:小白>, <Author: author_name:小周>, <Author: author_name:小紅>, <Author: author_name:小綠>, <Author: author_name:小光>]>
*************************values返回值**************************
<QuerySet [{'id': 3, 'name': '小白'}, {'id': 4, 'name': '小周'}, {'id': 5, 'name': '小紅'}, {'id': 6, 'name': '小綠'}, {'id': 7, 'name': '小光'}]>
orderby按照指定的字段排序
<QuerySet [<Author: author_name:小白>, <Author: author_name:小周>, <Author: author_name:小紅>, <Author: author_name:小綠>, <Author: author_name:小光>]>
************************count統計匹配的數量************************
5
************************first返回第一行數據************************
author_name:小白
************************last返回最后一行數據************************
author_name:小光
******************查詢id大于4,小于6的值*******************
<QuerySet [<Author: author_name:小綠>]>
****************in查詢包括列表中的數或not_in****************
<QuerySet [<Author: author_name:小白>, <Author: author_name:小紅>, <Author: author_name:小光>]>
******************contains包含某些值*******************
<QuerySet [<Author: author_name:小周>]>
**********range相當于sql語句中的between and 5<7**********
<QuerySet [<Author: author_name:小紅>, <Author: author_name:小綠>, <Author: author_name:小光>]>

models.py文件代碼

from django.db import models

# Create your models here.

class Publisher(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64,null=False,unique=True)

    def __str__(self):
        return "publisher_name:{}".format(self.name)

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=128,null=False)
    publisher = models.ForeignKey(to=Publisher)

    def __str__(self):
        return "book_title:{}".format(self.title)

class Author(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=16,null=False)
    book = models.ManyToManyField(to="Book")

    def __str__(self):
        return "author_name:{}".format(self.name)

Django 之  ORM 單表查詢方法使用

Django 之  ORM 單表查詢方法使用

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女