創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
小編給大家分享一下django框架實現(xiàn)對象關系映射的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
Django的ORM來源:django中內(nèi)嵌了ORM框架,不需要直接面向數(shù)據(jù)庫編程,而是定義模型類,通過模型類和對象完成數(shù)據(jù)表的增刪改查操作。
Django連接數(shù)據(jù)庫MySQL:使用MySQL數(shù)據(jù)庫首先需要安裝驅(qū)動程序。(pip install PyMySQL 調(diào)用時為 import pymysql)
Django默認導入的mysql的驅(qū)動程序是MySQLdb,然而MySQLdb對于py3支持不全,所以這里使用PyMySQL。 用于Python鏈接Mysql數(shù)據(jù)庫的接口。需要在__init__文件指定
from pymysql import install_as_MySQLdb install_as_MySQLdb() 。作用是讓Django的ORM能以mysqldb的方式來調(diào)用PyMySQL。
ORM介紹:對象關系映射。在項目與數(shù)據(jù)庫之間起橋梁作用。
在ORM框架中,它幫我們把類和數(shù)據(jù)表進行了一個映射,可以讓我們通過類和類對象就能操作它所對應的表格中的數(shù)據(jù)。例如:模型類BookInfo --映射到–> 數(shù)據(jù)表bookinfo。使數(shù)據(jù)庫設計更加簡單.
ORM框架還有一個功能,它可以根據(jù)我們設計的類自動幫我們生成數(shù)據(jù)庫中的表格,省去了我們自己建表的過程。
核心思想: 用面向?qū)ο蟮姆绞饺ゲ僮鲾?shù)據(jù)庫的創(chuàng)建表、增加、修改、刪除、查詢等操作。把面向?qū)ο笾械念惡蛿?shù)據(jù)庫表一一對應,通過操作類和對象,對數(shù)據(jù)表實現(xiàn)數(shù)據(jù)操作,不需要寫sql,由orm框架生成。
Django的ORM操作原理:Django的orm操作本質(zhì)上會根據(jù)對接的數(shù)據(jù)庫引擎,翻譯成對應的sql語句;所有使用Django開發(fā)的項目無需關心程序底層使用的是MySQL、Oracle、sqlite…,如果數(shù)據(jù)庫遷移,只需要更換Django的數(shù)據(jù)庫引擎即可
Django的ORM優(yōu)點缺點:
1)只需要面向?qū)ο缶幊? 不需要面向數(shù)據(jù)庫編寫代碼.
對數(shù)據(jù)庫的操作都轉化成對類屬性和方法的操作.不用編寫各種數(shù)據(jù)庫的sql語句.
2)實現(xiàn)了數(shù)據(jù)模型與數(shù)據(jù)庫的解耦, 屏蔽了不同數(shù)據(jù)庫操作上的差異.不在關注用的是mysql,oracle…等.通過簡單的配置就可以輕松更換數(shù)據(jù)庫, 而不需要修改代碼.
3)在映射過程中有性能缺失,面向?qū)ο缶幊痰絪ql語句之間的映射需要過程時間,造成性能缺失
配置步驟:
在settings.py中配置了數(shù)據(jù)庫的連接配置信息
指定調(diào)用MySQL的驅(qū)動程序PyMySQL
在MySQL中創(chuàng)建數(shù)據(jù)庫
創(chuàng)建模型:
遷移
1)生成遷移文件 python manage.py makemigrations
2)同步到數(shù)據(jù)庫中 python manage.py migrate
看完了這篇文章,相信你對django框架實現(xiàn)對象關系映射的方法有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,感謝各位的閱讀!
本文題目:django框架實現(xiàn)對象關系映射的方法-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article36/ddecsg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、品牌網(wǎng)站制作、品牌網(wǎng)站設計、移動網(wǎng)站建設、品牌網(wǎng)站建設、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容