Django中的Object Relational Mapping(ORM)

ORM 介紹

ORM 概念

對象關係映射(Object Relational Mapping,簡稱ORM)模式是一種爲了解決面向對象與關係數據庫存在的互不匹配的現象的技術。html

簡單的說,ORM是經過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關係數據庫中。mysql

ORM在業務邏輯層和數據庫層之間充當了橋樑的做用。程序員

ORM 由來

字母O起源於"對象"(Object),而R則來自於"關係"(Relational)。sql

幾乎全部的軟件開發過程當中都會涉及到對象和關係數據庫。在用戶層面和業務邏輯層面,咱們是面向對象的。當對象的信息發生變化的時候,咱們就須要把對象的信息保存在關係數據庫中。數據庫

按照以前的方式來進行開發就會出現程序員會在本身的業務邏輯代碼中夾雜不少SQL語句用來增長、讀取、修改、刪除相關數據,而這些代碼一般都是重複的。django

ORM 優點

ORM解決的主要問題是對象和關係的映射。它一般把一個類和一個表一一對應,類的每一個實例對應表中的一條記錄,類的每一個屬性對應表中的每一個字段。 app

ORM提供了對數據庫的映射,不用直接編寫SQL代碼,只需像操做對象同樣從數據庫操做數據。工具

讓軟件開發人員專一於業務邏輯的處理,提升了開發效率。spa

ORM 劣勢

ORM的缺點是會在必定程度上犧牲程序的執行效率。code

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 pymysql


pymysql.install_as_MySQLdb()

Model

在Django中model是數據的單1、明確的信息來源。它包含了存儲的數據的重要字段和行爲。

一般,一個模型(model)映射到一個數據庫表. 

基本狀況:

  • 每一個模型都是一個Python類,它是django.db.models.Model的子類。
  • 模型的每一個屬性都表明一個數據庫字段。
  • Django爲您提供了一個自動生成的數據庫訪問API,詳見官方文檔連接

 

 

 

 

 

 

 

 

 

詳情見:  Django官網文檔

相關文章
相關標籤/搜索