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. window下nodejs爬取gb2312网页出现乱码的解决方案

     发布于 2012-8-22 18:15  5230 次浏览  最后一次编辑是 2013-2-18 22:31 linux环境下,我们可以通过 iconv 这个C++模块来处理Node.JS不支持的字 ...

  2. sql server 查询存储过程指令

    Sp_helptext PROCEDUREName 例子 创建存储过程 CREATE PROCEDURE SelectFromBitTable AS BEGIN select pkid,isdelet ...

  3. WPF控件获得焦点时去除虚线框

    原文:WPF控件获得焦点时去除虚线框 <Setter Property="FocusVisualStyle" Value="{x:Null}" />

  4. OnPropertyChanged的使用

    #region INotifyPropertyChanged         public event PropertyChangedEventHandler PropertyChanged;     ...

  5. WPF 创建无边框的圆角窗口

    原文:WPF 创建无边框的圆角窗口 如题所述,在WPF中要创建一个没有边框且为圆角的窗体,有如下几步工作要进行: 第一步:去掉窗体默认样式的边框 首先将窗体的背景设为透明,将允许透明的属性设置为Tru ...

  6. iOS UITableView动态隐藏或显示Item

    通过改变要隐藏的item的高度实现隐藏和显示item 1.创建UITableView #import "ViewController.h" @interface ViewContr ...

  7. Windows 10开发基础——XML和JSON (一)

    主要内容: JSON的序列化与反序列化 XML的序列化与反序列化 1.JSON的序列化与反序列化     JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,它 ...

  8. 数据可视化图表ECharts

    介绍: ECharts是一个基于ZRender(轻量级Canvas类库)的纯javascript图表库,提供可交互.个性化的数据可视化图表. ECharts提供了折线图.柱状图.散点图.饼图.K线图, ...

  9. 关于jquery.fileupload结合PHP上传图片的开发用法流程

    这阵子做了一个项目,涉及到了图片上传,以往用的都是uploadify这个插件,感觉它在PC上的使用还是很强大的, 不过最近这个项目涉及到了移动端的上传,其实uploadify也可以,但是他有一个 up ...

  10. 记一次排查tomcat耗费CPU过高的经历

    有一个新项目,在测试环境部署后,发现tomcat进程耗费的CPU非常高,排查过程如下: 日志搜集 先通过top,查找耗费CPU最高的线程 top -Hp pid 将线程ID转为16进制 printf ...