zoukankan      html  css  js  c++  java
  • 第三篇-Django建立数据库各表之间的联系(下)

    中篇介绍的是添加,下篇主要介绍查询

    通过一个Book表的书的信息查询Publish表中出版社的信息

    def addbook(request):
        # Book.objects.create(name="linux运维",price=77,pub_date="2018-11-2",publish_id=2)
    
        # publish_obj=Publish.objects.filter(name="人民出版社")[0]
        # Book.objects.create(name="GO",price=23,pub_date="2018-10-2",publish=publish_obj)
    
        book_obj=Book.objects.get(name="python")
        print(book_obj.name)
        print(book_obj.pub_date)
        print(book_obj.publish.name)
        print(type(book_obj.publish))
        return HttpResponse("添加成功")
    View Code

    可以看见Book.obj.publish是一个对象,后面可以直接.属性获取相应的值。

    如果要看一个出版社出版了多少书

    def addbook(request):
        # Book.objects.create(name="linux运维",price=77,pub_date="2018-11-2",publish_id=2)
    
        # publish_obj=Publish.objects.filter(name="人民出版社")[0]
        # Book.objects.create(name="GO",price=23,pub_date="2018-10-2",publish=publish_obj)
    
        # book_obj=Book.objects.get(name="python")
        # print(book_obj.name)
        # print(book_obj.pub_date)
        # print(book_obj.publish.name)
        # print(type(book_obj.publish))
    
        pub_obj=Publish.objects.filter(name="人民出版社")[0]
        ret=Book.objects.filter(publish=pub_obj).values("name","price")
        print(ret)
        return HttpResponse("添加成功")
    View Code

    pub_obj是一个对象,获取到name是人民出版社的集合,取其中的第一个。此时表中只有一个人民出版社。

    ret是找到publish对象为人民出版社的书的集合,取这些集合对象中的name和price的值。

    由于此时Book表中每个出版社只有一本书,所以为了看到效果,在Book表中手动添加2本书书籍。

    然后刷新http://127.0.0.1:8888/addbook/页面

    会看见pycharm的Terminal窗口输出:

    <QuerySet [{'name': 'GO', 'price': 23}, {'name': 'C++', 'price': 99}]>

    可以看出,人民出版社出版了GO和C++两本书,是正确的。

  • 相关阅读:
    BZOJ 2157: 旅游 (2017.7.21 6:30-2017.7.21 15:38 今日第一题。。)
    洛谷 P1021 邮票面值设计
    洛谷 P2912 [USACO08OCT]牧场散步Pasture Walking
    COGS 2111. [NOIP2015普及]扫雷游戏
    洛谷 P3038 [USACO11DEC]牧草种植Grass Planting
    COGS 1439. [NOIP2013]货车运输
    COGS 908. 校园网
    codevs 1422 河城荷取
    codevs 1183 泥泞的道路
    洛谷 P3390 【模板】矩阵快速幂
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/9895258.html
Copyright © 2011-2022 走看看