ORM: object relationship mapping
ORM: object relationship mapping 关于数据库的两条命令:
python manage.py makemigrations
python manage.py migrate
数据库第一次配置必须完成数据库的迁移,执行上边的两条命令就好 表单的记录操作:
1、添加
obj = models.表名(**kwargs)
obj.save() models.表名.objects.create(**kwargs) 2、修改
#方式一:
obj = models.表名.objects.filter(name="python")[0]
obj.name = "JAVA"
obj.save #方式二 update
models.表名.objects.filter(name="python").update(**kwargs) 3、删除:
models.表名.objects.filter(name="python").delete() 4、查询:
QuerySet集合对象:
models.表名.objects.all()
models.表名.objects.filter(**kwargs)
models.表名.objects.all().values(*args)
models.表名.objects.all().values_list(*args)
models.表名.objects.exclude(**kwargs)
models.表名.objects.order_by(*args)
models.表名.objects.distinct(*args) model对象:
models.表名.objects.get(**kwargs)
models.表名.objects.filter(**kwargs).first()
models.表名.objects.filter(**kwargs).last()
models.表名.objects.filter(**kwargs).count()
models.表名.objects.filter(**kwargs).exist() 关联表记录操作:
表关系:
1、一对一
2、一对多
3、多对一
添加记录:
一对多:
创建一对多:
publish = models.Foreignkey("Publish",related_name="bookList")
#添加记录方式1:
models.Book.objects.create(publish_id=1)
#添加的记录方式2:
pubObj = models.Publish.objects.filter(name = "人民出版社")[0]
models.Book.objects.create(publish=pubObj) 多对多:
创建多对多关系:
authorlist = models.ManyToManyField("Author",related_name="bookList")
多对多添加记录:
book_obj = models.Book.objects.create(title="追风的人",price=100,publishDate="2017-12-12",publish_id=2)
alex_obj = models.Author.objects.filter(name="alex")[0]
egon_obj = models.Author.objects.filter(name="egon")[0] 查询记录:
正向查询:
一对多:
linux_obj = models.Book.objects.filter(title="linux").first()
print(linux_obj.publish.name) #与这本书对象关联的出版社的对象的名字 多对多:
linux_obj = models.Book.objects.filter(title="linux").first()
print(linux_obj.authorlist.all()) #与这本书关联的所有的作者的对象集合
反向查询:
一对多:
eg:查找人民出版社出版过的书籍的名字
publist_obj = models.Publish.objects.filter(name="人民出版社")[0]
print(publist_obj.bookList.all()) #出版社书籍对象集合 多对多:
eg:查找yuan出版过的素有书籍的名字和价格
author_yuan = models.Author.objects.get(name="yuan")
print(author_yuan.bookList.all())
与该作者关联的所有书籍的对象的集合
ORM: object relationship mapping的更多相关文章
- ORM(Object Relational Mapping)框架
ORM(Object Relational Mapping)框架 ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放 ...
- JDBC ORM(Object Relationship Database Mapping)
ORM=Object Relationship Database Mapping 对象和关系数据库的映射 简单说,一个对象,对应数据库里的一条记录 示例:根据id返回一个Hero对象 提供方法get( ...
- ORM(Object/Relation Mapping)框架简介
ORM 框架简介 对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关 ...
- [19/05/08-星期三] JDBC(Java DataBase Connectivity)_ORM(Object Relationship Mapping, 对象关系映射)
一.概念 基本思想: – 表结构跟类对应: 表中字段和类的属性对应:表中记录和对象对应: – 让javabean的属性名和类型尽量和数据库保持一致! – 一条记录对应一个对象.将这些查询到的对象放到容 ...
- Object Relational Mapping框架之Hibernate
hibernate框架简介: hibernate框架就是开发中在持久层中应用居多的ORM框架,它对JDBC做了轻量级的封装. (百度介绍,感觉不错) 什么是ORM:Object Relational ...
- Object/Relational Mapping 数学关系 反面向对象
[hibernate ORM 是对象关系映射框架 事实上的持久化存储引擎] http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/ ...
- 一:ORM关系对象映射(Object Relational Mapping,简称ORM)
狼来的日子里! 奋发博取 10)django-ORM(创建,字段类型,字段参数) 一:ORM关系对象映射(Object Relational Mapping,简称ORM) ORM分两种: DB fir ...
- django 操作数据库--orm(object relation mapping)---models
思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...
- Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
随机推荐
- SpringBoot Test集成测试
1.pom,文件添加相关依赖 如何测试SpringBoot的请求?使用spring-boot-starter-test这个包即可完成测试,SpringBoot项目为什么需要测试本章不作过多说明,重点放 ...
- IntelliJ IDEA 2017 注册方法
本文使用破解方式注册. JetbrainsCrack-2.6.2.jar适用于ideaIU-2017.2.之前版本,若下载的版本较新破解文件可能无法使用,破解时一闪而退. 其中JetbrainsCra ...
- 【java】用HashMap计数,用TreeSet排序
package com.tn.hashMap; import java.util.HashMap; import java.util.TreeSet; public class HashMapDemo ...
- C#基础在using中创建对象
在using中创建的对象的类必须是实现了IDispose接口的类,示例代码如下: static void Main(string[] args) { Method(); Console.WriteLi ...
- [array] leetcode - 53. Maximum Subarray - Easy
leetcode - 53. Maximum Subarray - Easy descrition Find the contiguous subarray within an array (cont ...
- ArcGIS 网络分析[8.6] 资料6 创建网络分析图层及进行路径分析
基于上篇所介绍的内容,就说说如何利用访问到的网络数据集,在Map中添加网络数据集图层.创建网络分析图层中的路径图层,并执行路径分析示例.
- Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述
第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库 如果想要有奇特的绘 ...
- JAVA NIO学习四:Path&Paths&Files 学习
今天我们将学习NIO 的最后一章,前面大部分涉及IO 和 NIO 的知识都已经讲过了,那么本章将要讲解的是关于Path 以及Paths 和 Files 相关的知识点,以对前面知识点的补充,好了言归正传 ...
- 02-01官网静默模式安装WebLogic
参考连接:https://docs.oracle.com/middleware/11119/wls/WLSIG/silent.htm#CIHCAHGC 以静默模式运行安装程序 本章介绍如何以静默方式运 ...
- XCopy命令实现增量备份
xcopy XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行C ...