zoukankan      html  css  js  c++  java
  • ORM查询练习

    ORM查询练习

    ORM查询的练习题

    ORM代码

    from django.db import models
    
    # Create your models here.
    class Publisher(models.Model):
        name = models.CharField(max_length=32)
        city = models.CharField(max_length=32)
    
        def __str__(self):
            return self.name
    
    
    class Book(models.Model):
        title = models.CharField(max_length=32)
        publish_date = models.DateField(auto_now_add=True)
        price = models.DecimalField(max_digits=5, decimal_places=2)
    
        publisher = models.ForeignKey(to="Publisher")
    
        def __str__(self):
            return self.title
    
    class Author(models.Model):
        name = models.CharField(max_length=32)
        age = models.IntegerField()
        phone = models.IntegerField()
        books = models.ManyToManyField(to="Book", related_name="authors")
        detail = models.OneToOneField(to="AuthorDetail")
    
        def __str__(self):
            return self.name
    
    
    class AuthorDetail(models.Model):
        bobby = models.CharField(max_length=32)
        addr = models.CharField(max_length=128)
    

    查询代码

    import os
    import sys
    
    if __name__ == '__main__':
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ormday70.settings")
        import django
    
        django.setup()
    
        from app01 import models
    
        # 查找所有书名里包含沙河的书
        ret = models.Book.objects.filter(title__contains="沙河")
        print(ret)
    
        # 查找所有出版日期是2018年的书
        ret = models.Book.objects.filter(publish_date__year=2018)
        print(ret)
    
        # 查找价格大于10元的书
        ret = models.Book.objects.filter(price__gt=10)
        print(ret)
    
        # 找到在沙河的出版社
        ret = models.Publisher.objects.filter(city="沙河")
        print(ret)
    
        # distinct
        # 查所有书关联的出版社
        ret = models.Book.objects.all().values_list("publisher__name")
        print(ret)
        # distinct去重
        print(ret.distinct())
    
        # 将所有的书按照价格倒叙排序
        # 默认排序
        ret = models.Book.objects.all().order_by("price")
        print(ret)
        # 倒序
        print(ret.reverse())
        # 同时,支持使用减号表示倒序排序
        ret = models.Book.objects.all().order_by("-price")
        print(ret)
    
        # 查询书名是沙河异闻录的书的出版社的city
        ret = models.Book.objects.filter(title="沙河异闻录").values_list("publisher__city")
        print(ret)
    
        # 查询书名是沙河异闻录的书的作者的爱好(夸两张表)
        ret = models.Book.objects.filter(title="沙河异闻录").values("authors__detail__bobby")
        print(ret)
    


  • 相关阅读:
    关于c语言的一个小bug(c专家编程)
    A10 平板开发一硬件平台搭建
    A10 平板开发二搭建Android开发环境
    hdu
    如何选择发现自己是否适合科研?
    屌丝程序员与房子
    一步一步学数据结构之n--n(Prim算法)
    pat 1049 Counting Ones
    add-strings
    这篇讲PHP的讲的有些道理 & mb_substr & 中文处理
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9455711.html
Copyright © 2011-2022 走看看