Django中ORM介绍

目录

  • 一 ORM介绍

    • 1.1 ORM 概念
    • 1.2 ORM的由来
    • 1.3 ORM的优势
    • 1.4 ORM的劣势
    • 1.5 ORM总结
  • 二 Django中的ORM
    • 2.1 Django使用MySQL数据库
    • 2.2 Model
    • 2.3 快速入门

一 ORM介绍

1.1 ORM 概念

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

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

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

1.2 ORM的由来

字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的。

1.3 ORM的优势

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

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

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

1.4 ORM的劣势

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

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

1.5 ORM总结

ORM只是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。但我们不能指望某个工具能一劳永逸地解决所有问题,一些特殊问题还是需要特殊处理的。

但是在整个软件开发过程中需要特殊处理的情况应该都是很少的,否则所谓的工具也就失去了它存在的意义。

二 Django中的ORM

2.1 Django使用MySQL数据库

  1. 在Django项目的settings.py配置文件中,配置数据库连接信息。
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "你的数据库名称",  # 需要自己手动创建数据库
        "USER": "数据库用户名",
        "PASSWORD": "数据库密码",
        "HOST": "数据库IP",
        "POST": 3306
    }
}
  1. 在Django项目的__inti__.py文件中写下如下代码,告诉Django使用pymysql模块链接MySQL数据库
import pymysql
pymysql.install_as_MySQLdb()

2.2 Model

在Django中model是你数据的单一、明确的信息来源。它包含了你存储数据的重要字段和行为。通常,一个模型(model)映射到一个数据库表。

基本情况:

  • 每个模型都是一个python类,它是django.db.models.Model的子类
  • 模型的每个属性都代表一个数据库字段
  • 综上所述,Django为您提供了一个自动生成的数据库访问API,详询官方文档链接。

2.3 快速入门

下面这个例子定义了一个 Person模型,包含 first_namelast_name

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

first_namelast_name是模型的字段。每个字段被指定为一个类属性,每个属性映射到一个数据库列

上面的Person模型将会向这样双肩一个数据库表:

CREATE TABLE myapp_person (
    "id" serial NOT NULL PRIMARY KEY,
    "first_name" varchar(30) NOT NULL,
    "last_name" varchar(30) NOT NULL
);

一些说明:

  • 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时。
  • id字段是自动添加的,如果你想要指定自定义主键,只需在其中一个字段中指定 primary_key=True 即可。如果Django发现你已经明确地设置了Field.primary_key,它将不会添加自动ID列。
  • 本示例中的CREATE TABLE SQL使用PostgreSQL语法进行格式化,但值得注意的是,Django会根据配置文件中指定的数据库后端类型来生成相应的SQL语句。
  • Django支持MySQL5.5及更高版本。

原文地址:https://www.cnblogs.com/wangph/p/9515212.html

时间: 2024-10-01 23:07:27

Django中ORM介绍的相关文章

Django中ORM介绍和字段及字段参数

https://www.cnblogs.com/liwenzhou/p/8688919.html Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库

Django中ORM介绍和字段及其参数

ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM的由来 字母‘O’起源于“对象”(Object),'R'代表“关系”(Relational). 几乎所有的软件开发过程中都会涉及到对象和关系数据库.在用户层面和业务逻辑层

Django中ORM介绍和字段参数

Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 原文地址:https://www.cnblogs.com/pengpengge/p/9396331.html

Django中ORM字段以及字段参数介绍

一:Django中ORM的介绍 1.ORM的概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 2.ORM的来源 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系"(Relational)

59 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用

主要内容: 1 form表单中提交数据的三要素 form标签必须要有action和method的属性 所有获取用户输入的标签必须放在form表单里,也必须要有那么name属性.因为往后端提交数据的时候name所对应的是关键字, input输入的值为value.在后端显示为字典的模式, 如果不写name关键字,则取不到值. 必须要有submit按钮. 2 Django 基础三件套 from Django.shortcuts import HttpResponse, render, redirect

关于Django中ORM数据库迁移的配置

Django中ORM数据库迁移配置 1,若想将模型转为mysql数据库中的表,需要在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'bms', # 要连接的数据库,连接前需要创建好 'USER':'root', # 连接数据库的用户名 'PASSWORD':'', # 连接数据库的密码 'HOST':'127.0.0.1', # 连接主机,默认本级 'PORT':3306

Django中ORM外键和表的关系(Django编程-4)

外键 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam.如果使用的是InnoDB引擎,是支持外键约束的.外键的存在使得ORM框架在处理表关系的时候异常的强大.因此这里我们首先来介绍下外键在Django中的使用. 类定义为class ForeignKey(to,on_delete,**options).第一个参数是引用的是哪个模型,第二个参数是在使用外键引用的模型数据被删除了,这个字段该如何处理,比如有CASCADE.SET_NULL等.这里以一个实际案例来说明.比如有一个

Django中ORM对数据库的增删改查操作

什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在Django中定义一个类,就是在数据库中创建一张表格.在Django中实例化一个类的对象,就是在数据库中增加了一条记录.在Django中删除一个对象,就是在数据库中删除了一条记录.在DJango中更改一个对象的属性,就是在数据库中修改一条记录的值.在django中遍历查询对象的属性值,就是在数据库中查询记录的值.

Django中ORM

Object Relational Mapping(ORM) ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系"(Re