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,简 ...
随机推荐
- svn协同开发下的dll版本管理最佳实践
作为一名开发人员,常常碰到的一个问题是,当使用svn签出一份最新代码时,经常不能一次编译通过,导致花费大量时间去解决编译问题,这里碰到的问题一般可以分为三类: 1. 由于提交代码的开发人员失误,忘记提 ...
- Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.6.RELEASE:repackage failed: Unable to find main class
异常 [INFO] --- spring-boot-maven-plugin:1.5.6.RELEASE:repackage (default) @ spring-boot-starter-log - ...
- 《ActiveMQ in Action》【PDF】下载
内容介绍TheApache ActiveMQ message broker is an open source implementation ofthe Java Message Service sp ...
- VisualVM 分析full GC问题记录
背景:JAVA APP,主要功能是处理日志并存入db 现象:运行一段时间就出现OOM问题,查看GC log发现运行没多久就一直Full GC,并且抛出OOM的异常. [Full GC (Ergonom ...
- 通过SQL创建一个有主键自动递增有默认值不为空有注释的表
-- create database db_std_mgr_sys; use db_std_mgr_sys; create table student( std_id bigint not null ...
- 用C#写入Excel表并保存
想用C#操作Excel表,首先要做一些准备工作. 如果要操作 microsoft office Excel 2003表,就需要引入Microsoft office 11.0 object librar ...
- C++ 头文件系列(iomanip)
1. 简介 该头文件定义了一些参数化的操纵器(manipulatators),注意ios头文件也定义了一些. 2. maniapulators 2.1 C++98 resetiosflags : 重置 ...
- Wincc flexable的局势视图的组态
1.趋势视图介绍 2.实时趋势视图的组态 1)创建连接和变量 2)开始组态局势视图 3)设置趋势视图的属性,添加一个趋势 3.模拟运行HMI,观察局势图
- ASP.NET MVC下自定义错误页和展示错误页的几种方式
在网站运行中,错误是不可避免的,错误页的产生也是不可缺少的. 这几天看了博友的很多文章,自己想总结下我从中学到的和实际中配置的. 首先,需要知道产生错误页的来源,一种是我们的.NET平台抛出的,一种是 ...
- java inputstream to string stack overflow
https://stackoverflow.com/questions/309424/read-convert-an-inputstream-to-a-string 过千赞的答案