国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django學習筆記之ORM基礎教程

2020-02-22 23:34:23
字體:
來源:轉載
供稿:網(wǎng)友

ORM簡介

ORM概念

對象關系映射(Object Relational Mapping,簡稱ORM)模式是一種為了解決面向對象與關系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術。

簡單的說,ORM是通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù),將程序中的對象自動持久化到關系數(shù)據(jù)庫中。

ORM在業(yè)務邏輯層和數(shù)據(jù)庫層之間充當了橋梁的作用。

ORM由來

讓我們從O/R開始。字母O起源于"對象"(Object),而R則來自于"關系"(Relational)。

幾乎所有的軟件開發(fā)過程中都會涉及到對象和關系數(shù)據(jù)庫。在用戶層面和業(yè)務邏輯層面,我們是面向對象的。當對象的信息發(fā)生變化的時候,我們就需要把對象的信息保存在關系數(shù)據(jù)庫中。

按照之前的方式來進行開發(fā)就會出現(xiàn)程序員會在自己的業(yè)務邏輯代碼中夾雜很多SQL語句用來增加、讀取、修改、刪除相關數(shù)據(jù),而這些代碼通常都是重復的。

ORM的優(yōu)勢

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

ORM提供了對數(shù)據(jù)庫的映射,不用直接編寫SQL代碼,只需像操作對象一樣從數(shù)據(jù)庫操作數(shù)據(jù)。

讓軟件開發(fā)人員專注于業(yè)務邏輯的處理,提高了開發(fā)效率。

ORM的劣勢

ORM的缺點是會在一定程度上犧牲程序的執(zhí)行效率。

ORM用多了SQL語句就不會寫了,關系數(shù)據(jù)庫相關技能退化...

ORM總結

ORM只是一種工具,工具確實能解決一些重復,簡單的勞動。這是不可否認的。

但我們不能指望某個工具能一勞永逸地解決所有問題,一些特殊問題還是需要特殊處理的。

但是在整個軟件開發(fā)過程中需要特殊處理的情況應該都是很少的,否則所謂的工具也就失去了它存在的意義。

Django連接MySQL數(shù)據(jù)庫

1. 在Django項目的settings.py文件中,配置數(shù)據(jù)庫連接信息:

DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "你的數(shù)據(jù)庫名稱", # 需要自己手動創(chuàng)建數(shù)據(jù)庫 "USER": "數(shù)據(jù)庫用戶名", "PASSWORD": "數(shù)據(jù)庫密碼", "HOST": "數(shù)據(jù)庫IP", "POST": 3306 }}

2. 在Django項目(注意,項目里的,不是app)的__init__.py文件中寫如下代碼,告訴Django使用pymysql模塊連接MySQL數(shù)據(jù)庫:

import pymysqlpymysql.install_as_MySQLdb()

3.如需在pycharm里視圖操作:

 

Django中ORM的(簡單)增刪改查

增加表

下面這個例子定義了一個 Person 模型,包含 first_name 和 last_name。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜都市| 四会市| 家居| 通化市| 绥中县| 西贡区| 张家港市| 无极县| 公主岭市| 商水县| 溧阳市| 七台河市| 丽水市| 富阳市| 台中县| 娄烦县| 嘉黎县| 定陶县| 漳浦县| 武功县| 长丰县| 莱州市| 莎车县| 怀集县| 汕尾市| 玉龙| 朝阳县| 新河县| 和田市| 德阳市| 镇坪县| 名山县| 南部县| 常州市| 迭部县| 瑞昌市| 天长市| 扎兰屯市| 赞皇县| 西青区| 新巴尔虎左旗|