orm的操作
ORM的对应关系
类 —— 》 表
对象 ——》 记录(数据行)
属性 ——》 字段
class Book(model.Model):
title=models.CharFiled(max_length=32) 类-----------------表 # Book------- app01_book
属性变量-----------字段 # title------ title
属性对象-----------约束 # models.CharFiled(max_length=32)
类实例对象---------表记录
ORM操作
查询
models.Publisher.objects.all() # 查询所有的数据 ——》 QuerySet 对象列表
models.Publisher.objects.get() # 获取满足条件的一个对象 ——》 单独的对象
models.Publisher.objects.filter() # 获取满足条件的所有对象 ——》对象列表
models.Publisher.objects.all().order_by('id') # 排序 —— 》 对象列表
pub_obj.pk ——》 主键
pub_obj.name
外键
book_obj.publisher ——》 关联的对象
book_obj.publisher_id ——》从book表中获取关联对象的ID
book_obj.publisher.name ——》 关联的对象的属性
多对多
author_obj.books ——》 管理对象
author_obj.books.all() ——》 关联的所有的对象 对象列表
book_obj.author_set ——》管理对象、
增加
models.Publisher.objects.create(name='xxx') ——》 对象
外键
models.Book.objects.create(title='xxx',publisher=pub_obj)
models.Book.objects.create(title='xxx',publisher_id=pub_obj.id)
多对多
models.Author.objects.create(name='xxxx') ——》 author_obj
author_obj.books.set([多个要关联对象的id,])
author_obj.books.set([多个要关联对象,])
删除
models.Author.objects.get(id=1).delete()
models.Author.objects.filter(id=1).delete()
修改
pub_obj.name = 'new_xxxx'
pub_obj.save()
外键
book_obj.title = 'xxxx'
book_obj.publisher = pub_obj 或者 book_obj.publisher_id = pub_obj .id
book_obj.save()
多对多
author_obj.name = 'new_name'
author_obj.save()
author_obj.books.set([多个要关联对象,]) author_obj.books.set([多个要关联对象的id,])
orm的操作的更多相关文章
- Django中的ORM进阶操作
Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...
- Django ----- app 和 ORM的操作和介绍
创建APP ORM 介绍 ORM的操作 说明一下 GET 和 POST 的区别: , GET ①获取一个页面 ②提交数据 数据显示在URL ?user=alex&pwd=alexdsb ,PO ...
- Django框架详细介绍---ORM相关操作
Django ORM相关操作 官方文档: https://docs.djangoproject.com/en/2.0/ref/models/querysets/ 1.必须掌握的十三个方法 <1& ...
- Django-website 程序案例系列-4 ORM数据库操作
数据库表的创建: 使用mysql时注意,在setting.py中的设置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql' ...
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
- Golang beego ORM + CRUP 操作详解
构建beego Web 项目 首先构建一个beego 的web 项目,这个我们完全可以参考beego 官网中的开发文档,上面介绍的非常的详细,在这我就不给大家介绍,主要是介绍ORM ...
- Django 2.0 学习(16):Django ORM 数据库操作(下)
Django ORM数据库操作(下) 一.增加表记录 对于表单有两种方式: # 方式一:实例化对象就是一条表记录france_obj = models.Student(name="海地&qu ...
- Django 2.0 学习(14):Django ORM 数据库操作(上)
Django ORM 数据库操作(上) ORM介绍 映射关系: 数据库表名 ---------->类名:数据库字段 ---------->类属性:数据库表一行数据 ----------&g ...
- Django框架 之 ORM查询操作详解
Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Py ...
- Django ORM models操作
title: Django ORM models操作 tags: Django --- Django ORM models操作 Django ORM基本操作 一.数据库的创建及增删改查 1 使用类创建 ...
随机推荐
- JS里脱离文档流
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title&g ...
- UltraEdit实现“删除包含某个关键字的所有行”
原文:UltraEdit实现"删除包含某个关键字的所有行" UltraEdit实现"删除包含某个关键字的所有行" 1.Ctrl+R调出"替换对话框 ...
- 两种加载dll的方式
通过链接lib文件加载dll的话,使用过程中没法动态切换 通过loadlibrary函数动态加载的话,可以动态切换
- 零元学Expression Blend 4 - Chapter 23 Deep Zoom Composer与Deep Zoom功能
原文:零元学Expression Blend 4 - Chapter 23 Deep Zoom Composer与Deep Zoom功能 最近有机会在工作上用到Deep Zoom这个功能,我就顺便介绍 ...
- mysqldump数据库备份与恢复
mysqldump -u 用户名 -p 数据库名> 备份的文件名 本文中因服务器为多实例,所以在执行登陆等命令时指定了-S参数,即指定其中一个数据库 备份: mysqldump -u root ...
- getch(),getche(),getchar()的区别
先说基本区别. (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符.其调用格式为: getch(); getche(); 两者的区别是 ...
- PC-lint 简明教程(C/C++静态代码检查工具)
前言 PC-lint是一款小而强大的C/C++静态代码检查工具,它可以检查未初始化变量,数组越界,空指针等编译器很难发现的潜在错误.在很多专业的软件公司如Microsoft,PC-Lint检查无错误无 ...
- 使用sikuli软件进行自动化编程
因为工作上的需要,某个信息系统不健全,因此仅仅需要一个一个的点击确认,客户端是网页版本的,抓包太复杂了,如何快速的能够自动化操作? 想到了之前学习python的时候,发现了一个基于java的图片编程软 ...
- list 多行表头 表头合并
http://blog.csdn.net/safedebug/article/details/52971685
- 利用js参数,保持客户端文件的新鲜度
不知道你是否碰到过如下情况,在服务端更新了一个重要的js文件后,由于浏览器的缓存机制,导致用户始终不能获取到最新的文件,此时的你恨不得有孙悟空吹毛化身的法术,帮用户清除浏览器的缓存.缓存既是程序员的好 ...