Django--ORM介绍

2018-11-17  本文已影响0人  可笑的黑耀斑

ORM(Object Relational Mapping)介绍

ORM概念

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。
简单地说,ORm是通过使用描述对象和数据库之间映射的团数据,将程序中的对象自动持久化到关系型数据库中。
ORM在业务逻辑层和数据库层之间充当了桥梁的作用。

ORM的由来

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

ORM的优势

ORM解决的主要问题是对象和关系的映射。它通常把一个雷和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。
ORM提供了对数据库的映射,不用直接编写SQL到吗,只需要像操作对象一样从数据库操作数据。
让软件考法人员专注于业务逻辑的处理,提高了开发效率。

ORM的劣势

ORM的缺点是会在一定程度上牺牲程序的执行效率。
ORM用多了SQL语句就不熟练了,关系数据库的相关技能也会退化。

Django中的ORM

Django项目使用MySQL数据库

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

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

2.在Django项目的init.py文件中写如下代码,告诉Django使用pymysql模块连接MySQL数据库:

import pymysql

pymysql.install_as_MySQLdb()

Model

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

基本情况:

入门

下面这个例子定义了一个 Person 模型,包含 first_name 和 last_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_name 和 last_name 是模型的字段。每个字段被指定为一个类属性,每个属性映射到一个数据库列。

上面的 Person 模型将会像这样创建一个数据库表:

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

一些说明:

上一篇下一篇

猜你喜欢

热点阅读