美文网首页
Django--ORM介绍

Django--ORM介绍

作者: 可笑的黑耀斑 | 来源:发表于2018-11-17 15:34 被阅读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)映射到一个数据库表,

    基本情况:

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

    入门

    下面这个例子定义了一个 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
    );
    

    一些说明:

    • 表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及更高版本。

    相关文章

      网友评论

          本文标题:Django--ORM介绍

          本文链接:https://www.haomeiwen.com/subject/ayzbfqtx.html