zoukankan      html  css  js  c++  java
  • Django 模型层表格的查找

    表格的创建

    方式1:
       publish_obj=Publish.objects.get(nid=1)
       book_obj=Book.objects.create(title="谁偷了我的奶酪",publishDate="2012-12-12",price=100,publish=publish_obj)
      
    方式2:
       book_obj=Book.objects.create(title="谁偷了我的奶酪",publishDate="2012-12-12",price=100,publish_id=1

    表格绑定多堆多的关系

      # 当前生成的书籍对象
        book_obj=Book.objects.create(title="追风筝的人",price=200,publishDate="2012-11-12",publish_id=1)
        # 为书籍绑定的做作者对象
        lowen=Author.objects.filter(name="lowen").first() # 在Author表中主键为2的纪录
        egon=Author.objects.filter(name="egon").first() # 在Author表中主键为1的纪录
    
        # 绑定多对多关系,即向关系表book_authors中添加纪录
        book_obj.authors.add(lowen,egon)    #  将某些特定的 model 对象添加到被关联对象集合中。   =======    book_obj.authors.add(*[])

    查询:

    一对多正向查询

    # 查询主键为1的书籍的出版社所在的城市
    book_obj=Book.objects.filter(pk=1).first()
    # book_obj.publish 是主键为1的书籍对象关联的出版社对象
    print(book_obj.publish.city)  

    一对多反向查询

    publish=Publish.objects.get(name="苹果出版社")
    #publish.book_set.all() : 与苹果出版社关联的所有书籍对象集合
    book_list=publish.book_set.all()    
    for book_obj in book_list:
           print(book_obj.title)

    一对一查询

    1 egon=Author.objects.filter(name="egon").first()
    2 print(egon.authorDetail.telephone)
    3 
    4 反向查询# 查询所有住址在北京的作者的姓名
    5  
    6 authorDetail_list=AuthorDetail.objects.filter(addr="beijing")
    7 for obj in authorDetail_list:
    8      print(obj.author.name)

    多对多查询

     1 # 金瓶眉所有作者的名字以及手机号
     2  
     3 book_obj=Book.objects.filter(title="金瓶眉").first()
     4 authors=book_obj.authors.all()
     5 for author_obj in authors:
     6      print(author_obj.name,author_obj.authorDetail.telephone)
     7 
     8 
     9 反向查询
    10 # 查询egon出过的所有书籍的名字
    11  
    12     author_obj=Author.objects.get(name="egon")
    13     book_list=author_obj.book_set.all()        #与egon作者相关的所有书籍
    14     for book_obj in book_list:
    15         print(book_obj.title)

    正向查询按字段,反向查询按表名小写,如果查询对象有多个的话表名小写_set

    基于双下划线的扩表查询

    1 queryResult=Book.objects
    2             .filter(publish__name="苹果出版社")
    3             .values_list("title","price")
    4 
    5     # 反向查询 按表名:book
    6 
    7     queryResult=Publish.objects
    8               .filter(name="苹果出版社")
    9               .values_list("book__title","book__price")
  • 相关阅读:
    Begin Example with Override Encoded SOAP XML Serialization
    State Machine Terminology
    How to: Specify an Alternate Element Name for an XML Stream
    How to: Publish Metadata for a WCF Service.(What is the Metadata Exchange Endpoint purpose.)
    Beginning Guide With Controlling XML Serialization Using Attributes(XmlSerializaiton of Array)
    Workflow 4.0 Hosting Extensions
    What can we do in the CacheMetaData Method of Activity
    How and Why to use the System.servicemodel.MessageParameterAttribute in WCF
    How to: Begin Sample with Serialization and Deserialization an Object
    A Test WCF Service without anything of config.
  • 原文地址:https://www.cnblogs.com/lowen107/p/10235482.html
Copyright © 2011-2022 走看看