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,])

orm的操作的更多相关文章

  1. Django中的ORM进阶操作

    Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...

  2. Django ----- app 和 ORM的操作和介绍

    创建APP ORM 介绍 ORM的操作 说明一下 GET 和 POST 的区别: , GET ①获取一个页面 ②提交数据 数据显示在URL ?user=alex&pwd=alexdsb ,PO ...

  3. Django框架详细介绍---ORM相关操作

    Django ORM相关操作 官方文档: https://docs.djangoproject.com/en/2.0/ref/models/querysets/ 1.必须掌握的十三个方法 <1& ...

  4. Django-website 程序案例系列-4 ORM数据库操作

    数据库表的创建: 使用mysql时注意,在setting.py中的设置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql' ...

  5. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  6. Golang beego ORM + CRUP 操作详解

      构建beego Web 项目         首先构建一个beego 的web 项目,这个我们完全可以参考beego 官网中的开发文档,上面介绍的非常的详细,在这我就不给大家介绍,主要是介绍ORM ...

  7. Django 2.0 学习(16):Django ORM 数据库操作(下)

    Django ORM数据库操作(下) 一.增加表记录 对于表单有两种方式: # 方式一:实例化对象就是一条表记录france_obj = models.Student(name="海地&qu ...

  8. Django 2.0 学习(14):Django ORM 数据库操作(上)

    Django ORM 数据库操作(上) ORM介绍 映射关系: 数据库表名 ---------->类名:数据库字段 ---------->类属性:数据库表一行数据 ----------&g ...

  9. Django框架 之 ORM查询操作详解

    Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Py ...

  10. Django ORM models操作

    title: Django ORM models操作 tags: Django --- Django ORM models操作 Django ORM基本操作 一.数据库的创建及增删改查 1 使用类创建 ...

随机推荐

  1. 【msdn wpf forum翻译】TextBox中文本 中对齐 的方法

    原文:[msdn wpf forum翻译]TextBox中文本 中对齐 的方法 原文链接:http://social.msdn.microsoft.com/Forums/en-US/wpf/threa ...

  2. TThread类详解

    TThread是一个抽象类,可以创建几个独立的线程.类关系 TObject在一个多线程的应用程序中创建一个TThread的后子类代表一个线程.每一新子类的TThread对象的实例是一个新的线程.从TT ...

  3. SQL Server 将某一列的值拼接成字符串

    名称 海鲜水产 水果蔬菜 海参 肉禽蛋 牛排 腊味 生鲜食品 将以上一列变成: 生鲜食品,海鲜水产,水果蔬菜,海参,牛排,肉禽蛋,腊味 sql for xml path('')

  4. Qt for android触摸手势事件QGestureEvent

    在触摸设备上可以使用Qt的手势事件 要激活手势事件,需要执行以下操作: 第一步,为QWidget控件注册手势事件 QList<Qt::GestureType> gestures; gest ...

  5. WPF全局异常捕获

    跟着<WPF专业编程开发指南>这书打的代码的,自己在正式项目中测试通过,可以抓取到全局的异常,用的log4net来记录日志 核心代码: 写在App.xaml.cs中 /// <sum ...

  6. linux log rotate

    今天老大提醒我产线kafka自身的log文件积累了好几个月了,我才发现原来kafka的log4j并删除old log. 第一反应是采用linux自带的logrotate功能,在/etc/logrota ...

  7. 树莓派中安装QT

    树莓派中安装QT 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 硬件:树莓派 步骤: 参考链接:http://qt-proje ...

  8. VM中linux和windows主机进行串口通信

    最近在做关于AIS的内容.为了对AIS电文进行解码,串口收发. 数据有PC机模拟发送,为了调试方便,不用次次将程序放到开发板上运行,所以利用pc主机和虚拟机进行串口通信模拟该过程. 首先需要用到一个软 ...

  9. Python一基本数据类型(dict)

    一. 字典的简单介绍    字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后 ...

  10. docker系列(五):网络通信

    1 引言 之前的几篇docker系列博客说的都是单个容器或者镜像的操作.但容器,作为一种简化的操作系统,又怎能不与机器或者容器相互协同工作呢,这就需要用到容器的网络功能.docker中提供了多种不同的 ...