一?? *****? ORM框架介紹
Django操作數(shù)據(jù)庫的思想:ORM即對象關(guān)系映射 *object? relationship mapping*
數(shù)據(jù)庫中的表和數(shù)據(jù)庫中的類一一對應(yīng)?????????? 表中的列數(shù)據(jù)和類中的屬性相對應(yīng)
ORM介紹:對象關(guān)系映射妓笙。在項目與數(shù)據(jù)庫之間起橋梁作用算色。
在ORM框架中挣菲,它幫我們把類和數(shù)據(jù)表進(jìn)行了一個映射套硼,可以讓我們通過類和類對象就能操作它所對應(yīng)的表格中的數(shù)據(jù)倡缠。例如:模型類BookInfo --映射到--> 數(shù)據(jù)表bookinfo。使數(shù)據(jù)庫設(shè)計更加簡單
ORM框架還有一個功能棍丐,它可以根據(jù)我們設(shè)計的類自動幫我們生成數(shù)據(jù)庫中的表格渠牲,省去了我們自己建表的過程。
核心思想: 用面向?qū)ο蟮姆绞饺ゲ僮鲾?shù)據(jù)庫的創(chuàng)建表泌参、增加竭业、修改陪毡、刪除颗圣、查詢等操作寒跳。把面向?qū)ο笾械念惡蛿?shù)據(jù)庫表一一對應(yīng)国觉,通過操作類和對象普办,對數(shù)據(jù)表實現(xiàn)數(shù)據(jù)操作瓜浸,不需要寫sql师骗,由orm框架生成通孽。
Django的ORM操作原理:Django的orm操作本質(zhì)上會根據(jù)對接的數(shù)據(jù)庫引擎,翻譯成對應(yīng)的sql語句拙友;所有使用Django開發(fā)的項目無需關(guān)心程序底層使用的是MySQL为狸、Oracle、sqlite....遗契,如果數(shù)據(jù)庫遷移辐棒,只需要更換Django的數(shù)據(jù)庫引擎即可
Django的ORM優(yōu)點缺點:
1)只需要面向?qū)ο缶幊? 不需要面向數(shù)據(jù)庫編寫代碼.
對數(shù)據(jù)庫的操作都轉(zhuǎn)化成對類屬性和方法的操作.不用編寫各種數(shù)據(jù)庫的sql語句.
2)實現(xiàn)了數(shù)據(jù)模型與數(shù)據(jù)庫的解耦, 屏蔽了不同數(shù)據(jù)庫操作上的差異.不在關(guān)注用的是mysql,oracle...等.通過簡單的配置就可以輕松更換數(shù)據(jù)庫, 而不需要修改代碼.
3)在映射過程中有性能缺失牍蜂,面向?qū)ο缶幊痰絪ql語句之間的映射需要過程時間漾根,造成性能缺失
配置步驟:
1. 在settings.py中配置了數(shù)據(jù)庫的連接配置信息
2.指定調(diào)用MySQL的驅(qū)動程序PyMySQL
3.? 在MySQL中創(chuàng)建數(shù)據(jù)庫
4.創(chuàng)建模型:
5.遷移
1)生成遷移文件 python manage.py makemigrations
2)同步到數(shù)據(jù)庫中 python manage.py migrate
————————————————
原文鏈接:https://blog.csdn.net/jj915894495/article/details/82292445
二?? ****??? Django操作數(shù)據(jù)庫
1.連接sqlite默認(rèn)生成Django自帶的
real小數(shù)??? text文本?? int整數(shù)? blob大文本*二進(jìn)制文本*
2.數(shù)據(jù)庫中sqlite只是用于測試,正式項目不支持使用
字典格式將字典里面的值傳遞到頁面中
1.views.py
常用的模板標(biāo)簽:
連接數(shù)據(jù)庫在settings.py中的配置
在Django中操作數(shù)據(jù)庫:
在Django中操作數(shù)據(jù)庫有兩種方式鲫竞。第一種方式就是使用原生sql語句操作辐怕,第二種就是使用ORM模型來操作。這節(jié)課首先來講下第一種从绘。
在Django中使用原生sql語句操作其實就是使用python db api的接口來操作寄疏。如果你的mysql驅(qū)動使用的是pymysql,那么你就是使用pymysql來操作的僵井,只不過Django將數(shù)據(jù)庫連接的這一部分封裝好了陕截,我們只要在settings.py中配置好了數(shù)據(jù)庫連接信息后直接使用Django封裝好的接口就可以操作了。示例代碼如下: