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,简 ...
随机推荐
- 队列queue(2):链表实现队列
基本概念 队列是只允许在一端进行插入操作,另一端进行删除操作的线性表. 我们规定,允许删除的叫做队首"head",允许插入的叫做队尾"tail". 基本操作 我 ...
- 简单介绍什么是协程及其在ES6中的实现方式
协程,英文名coroutine,是一种执行过程可以被暂停和恢复的方法.各个协程之间相互协作完成一个任务. 让我们来看一个关于发挥协程作用的例子.假定我们有一个生产者和消费者的关系,生产者创建物品并将物 ...
- 查找 GPU 计算能力
你能在这里找到你的 GPU 的计算能力: https://en.wikipedia.org/wiki/CUDA#Supported_GPUs
- 添加MD5 密码加密
编辑 /etc/grub/grub.conf 配置文件 password = 123456 password --md5 $5$H.........SS grub-crypt --md5 ...
- Node.js平台的一些使用总结
Node.js的安装 菜鸟教程 npm -v查看npm的版本. npm更新 npm官网 npm权限问题 由于npm经常会因为权限问题,不能全局安装模块,所以解决办法如下: npm官网 npm切换淘宝源 ...
- Ajax同源和跨域
ajax跨域访问 客户端页面 var url = "http://172.16.91.121:81/FellIn/FellIn.aspx?Action=WXSave&WX_Store ...
- ASP.NET Core学习之二 菜鸟踩坑
对于像我这样没接触过core的人,坑还是比较多的,一些基础配置和以前差别很大,这里做下记录 一.Startup 1.注册服务 // This method gets called by the run ...
- sp_tableoption
设置用户定义表的选项值.sp_tableoption 可用于控制包含varchar(max).nvarchar(max).varbinary(max).xml.text.ntext 或 image 列 ...
- NFS : device is busy
unmount [ options ] -f : Force unmount (in case of an unreachable NFS system). -l : Lazy unmount. D ...
- vue2.0笔记《二》组件
主要内容:如何注册组件.如何使用组件.父组件子组件之间值的传递 1.如何注册组件 第一步:通过import将子组件载入父组件的js中 // 第一步:通过import将子组件载入父组件的js中 impo ...