Django中的Object Relational Mapping(ORM)
ORM 介绍
ORM 概念
对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
ORM在业务逻辑层和数据库层之间充当了桥梁的作用。
ORM 由来
字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。
几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。
按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的。
ORM 优势
ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。
ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。
让软件开发人员专注于业务逻辑的处理,提高了开发效率。
ORM 劣势
ORM的缺点是会在一定程度上牺牲程序的执行效率。
ORM用多了SQL语句就不会写了,关系数据库相关技能退化...
ORM 总结
ORM只是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。
但我们不能指望某个工具能一劳永逸地解决所有问题,一些特殊问题还是需要特殊处理的。
但是在整个软件开发过程中需要特殊处理的情况应该都是很少的,否则所谓的工具也就失去了它存在的意义。
Django中的ORM
Django项目中使用MySQL数据库
1. 在Django项目的settings.py文件中,配置数据库连接信息:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 链接数据库类型'NAME': 'orm', # 数据库名'HOST': '127.0.0.1', # 数据库主机地址'PORT': 3306, # 数据库端口号'USER': 'root', # 用户名'PASSWORD': '', # 密码 } }
2. 在Django项目的settings.py文件同目录下的__init__.py文件中,告诉Django使用pymysql模块连接MySQL数据库:
import pymysqlpymysql.install_as_MySQLdb()
Model
在Django中model是数据的单一、明确的信息来源。它包含了存储的数据的重要字段和行为。
通常,一个模型(model)映射到一个数据库表.
基本情况:
- 每个模型都是一个Python类,它是django.db.models.Model的子类。
- 模型的每个属性都代表一个数据库字段。
- Django为您提供了一个自动生成的数据库访问API,详见官方文档链接。
详情见: Django官网文档
转载于:https://www.cnblogs.com/BlameKidd/p/10946172.html
Django中的Object Relational Mapping(ORM)相关推荐
- Django框架----Object Relational Mapping(ORM)
Django中的ORM Django项目使用MySQL数据库 1. 在Django项目的settings.py文件中,配置数据库连接信息: DATABASES = {"default&quo ...
- ORM(Object Relational Mapping,对象/关系映射)
ORM(Object Relational Mapping,对象/关系映射) 在考虑O/R Mapping的时候,有两个概念是经常会接触的,那就是VO和PO. 所谓的VO,就是Value Object ...
- C++ web框架drogon 使用对象关系映射ORM(Object Relational Mapping)模式
在drogon框架之中,加入了ORM功能,使用在C++代码中嵌入很多的SQL语句,不仅让代码凌乱难看,更是需要很好的数据库语句编写功底,而使用ORM,则能够讲操作数据库转化为操作对象,在ORM中,通常 ...
- 对象-关系映射ORM(Object Relational Mapping)(转)
ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java).映射文件(*.hbm.xml)和数据库配置文件 ...
- Django中的核心思想ORM---元类实现ORM
1. ORM是什么 ORM 是 python编程语言后端web框架 Django的核心思想,"Object Relational Mapping",即对象-关系映射,简称ORM. ...
- 西游之路——python全栈——django中orm的使用(1)
目录 首先推荐两篇文章:Django之ORM操作,http://www.cnblogs.com/yuanchenqi/articles/6083427.html十分全面. 另外和python---OR ...
- Django中ORM操作
一.ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象 ...
- django中model模型
python manage.py dumpdata blog # 导出blog数据 python manage.py loaddata blog_dump.json # 导入数据 m ...
- Django从理论到实战(part26)--ORM模型
学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...
最新文章
- element-ui上传下载excel(超详细der)
- leetcode算法题--组合总和
- VSCode + Latex 配置
- python3之后版本读取网页的内容
- 以下模块打印出超级块中某些字段的内容
- 使用XmlPullParser解析XML
- Linux yum仓库的安装
- android sdk集合 下载,Android SDK下载列表(含海内下载)-下
- 【java学习】多线程之高并发编程
- Leetcode题解助手
- 形象易懂的傅里叶变换、短时傅里叶变换和小波变换
- Arduino学习之第一篇
- 黑帽SEO常用作弊手法分析
- java xml特殊字符_mybatis xml中特殊字符处理及特殊符号
- 电感的饱和电流 均方值电流 额定电流的认识
- matlab 绘制圆光栅,火爆抖音的圆点光栅画怎么做的?
- 四轴mpu6050姿态角卡尔曼滤波代码分析
- 如何用uni-app做一个领优惠券H5、小程序商城(一)
- HTML5 Canvas制作数独游戏(一)
- 你还要我怎样计算机音乐,你还要我怎样是什么歌抖音?
热门文章
- 多维数组的索引与切片_SystemVerilog的那些数组
- php与html网页制作,web 一个简单地三级网页的设计和编写,html+css,适合学习 制作的新手 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
- javax包 rpc_javax.xml.rpc和javax.wsdl分别属于哪个jar包?
- 计算机继续教育笔记,《继续教育中的学习技术》读书笔记
- java设计一个程序后怎么测试_Java语言程序设计(第1阶段学习测试)(都平)
- 目录行距怎么设置_硕士论文格式设置方法
- 485不用双绞线可以吗_刘兴亮丨有了北斗,中国可以不用GPS吗
- iphonex售价_苹果将发电竞笔记本,售价3.5w起!
- java中long的包装类_Java中基本数据的包装类
- linux neo4j weget,关于在linux中安装neo4j的步骤