Django之ORM基础

一、ORM简介:

ORM概念:

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

ORM在业务逻辑层和数据库层之间充当了桥梁的作用

ORM由来:

让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。

几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。

按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的。

ORM的优势:

ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。

ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。

让软件开发人员专注于业务逻辑的处理,提高了开发效率。

ORM的劣势:

ORM的缺点是会在一定程度上牺牲程序的执行效率。

ORM用多了SQL语句就不会写了,关系数据库相关技能退化...

二、Django连接MySQL数据库

1. 在Django项目的settings.py文件中,配置数据库连接信息:

DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "你的数据库名称", # 需要自己手动创建数据库
"USER": "数据库用户名",
"PASSWORD": "数据库密码",
"HOST": "数据库IP",
"POST": 3306
}
}

注意:

1."ENGINE" "NAME","USER"等一定要大写

2.3306 不加引号

2. 在Django项目(注意,项目里的,不是app)的__init__.py文件中写如下代码,告诉Django使用pymysql模块连接MySQL数据库:

import pymysql

pymysql.install_as_MySQLdb()

3.需在pycharm里操作链接mysql数据库:

三、Django中ORM的(简单)增删改查

1.表操作

1.1增加表

from django.db import models
class Classes(models.Model):
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=32)

注意:

  1. 1.类要继承models.Model
  2. 2.每个字段被指定为一个类属性,每个属性映射到一个数据库列。

2.数据操作

增:

models.Classes.object.create(name='ly')

models.Classes.object.get(id=1).delete()

ret=Classes.objects.get(id=1)
ret.name='zzy'
ret.save()

models.Person.object.all() #查找所有记录,返回一个queryset对象
models.Person.object.get(字段=值) #按照字段查找

最新文章

  1. Docker私有仓库搭建
  2. 解析 XML
  3. linux下cp覆盖原so文件时引起的段错误原因确定
  4. Java连接MySQL数据库——含步骤和代码
  5. 服务端性能测试校准v1.2
  6. 使用SQL生成DateTime.Ticks
  7. 数论 Note.
  8. 第四十一课:CSS3 animation详解
  9. truncate
  10. NYOJ 128 前缀式计算
  11. unity, collider/trigger on children
  12. vi编辑器基本用法介绍
  13. javacv
  14. 读书笔记_Effective_C++_条款二十二:将成员变量声明为private
  15. 如何安装windows7系统
  16. redmine的邮件配置
  17. usaco training 4.2.2 The Perfect Stall 最佳牛栏 题解
  18. tomcat连接池配置和使用
  19. Android + https 实现 文件上传
  20. Oracle—通过操作系统进程查看数据库sql语句

热门文章

  1. Jackson读取列表
  2. zabbix添加对web页面url的状态监控
  3. 分布式-技术专区-Redis并发竞争key的解决方案详解
  4. Vue--入门篇
  5. 【记录】ajax跨域问题jsonp正确的使用方式
  6. 【转载】sublime text3 全攻略
  7. Typora 精美而强大的Markdown编辑器 转
  8. java序列化对象为什么要定义serialversionUID值?
  9. vue全家桶(vue2.x+vue-router+axios+webpack)项目搭建
  10. Java——main()方法