zoukankan      html  css  js  c++  java
  • orm的操作

    ORM的对应关系

    ​ 类 —— 》 表

    ​ 对象 ——》 记录(数据行)

    ​ 属性 ——》 字段

    class  Book(model.Model):
             title=models.CharFiled(max_length=32)
             
    
            类-----------------表      #  Book------- app01_book
            属性变量-----------字段     #  title------ title
            属性对象-----------约束     #  models.CharFiled(max_length=32)
            类实例对象---------表记录 

    ORM操作

    1. 查询

      1. models.Publisher.objects.all() # 查询所有的数据 ——》 QuerySet 对象列表

      2. models.Publisher.objects.get() # 获取满足条件的一个对象 ——》 单独的对象

      3. models.Publisher.objects.filter() # 获取满足条件的所有对象 ——》对象列表

      4. models.Publisher.objects.all().order_by('id') # 排序 —— 》 对象列表

      5. pub_obj.pk ——》 主键

      6. pub_obj.name

      7. 外键

        1. book_obj.publisher ——》 关联的对象

        2. book_obj.publisher_id ——》从book表中获取关联对象的ID

        3. book_obj.publisher.name ——》 关联的对象的属性

      8. 多对多

        1. author_obj.books ——》 管理对象

        2. author_obj.books.all() ——》 关联的所有的对象 对象列表

        3. book_obj.author_set ——》管理对象、

    2. 增加

      1. models.Publisher.objects.create(name='xxx') ——》 对象

      2. 外键

        1. models.Book.objects.create(title='xxx',publisher=pub_obj)

        2. models.Book.objects.create(title='xxx',publisher_id=pub_obj.id)

      3. 多对多

        1. models.Author.objects.create(name='xxxx') ——》 author_obj

        2. author_obj.books.set([多个要关联对象的id,])

        3. author_obj.books.set([多个要关联对象,])

    3. 删除

      1. models.Author.objects.get(id=1).delete()

      2. models.Author.objects.filter(id=1).delete()

    4. 修改

      1. pub_obj.name = 'new_xxxx'

      2. pub_obj.save()

      3. 外键

        1. book_obj.title = 'xxxx'

        2. book_obj.publisher = pub_obj 或者 book_obj.publisher_id = pub_obj .id

        3. book_obj.save()

      4. 多对多

        1. author_obj.name = 'new_name'

        2. author_obj.save()

        3. author_obj.books.set([多个要关联对象,]) author_obj.books.set([多个要关联对象的id,])

  • 相关阅读:
    一个IT工薪族的4年奋斗成果
    一个IT工薪族的4年奋斗成果
    【VBA】制作散点图及打标签VBA
    【VBA】合并多个excel文件
    【统计分析】ROC曲线
    【ARDUINO】HC-05蓝牙不配对问题
    【ARDUINO】串口无法打开问题
    【ARDUINO】蓝牙(HC-05)透传
    【Raspberry pi+python+mysql】红外传感器-发邮件-存数据库
    【Raspberry Pi】crontab 定时任务
  • 原文地址:https://www.cnblogs.com/kenD/p/10062290.html
Copyright © 2011-2022 走看看