Django中的Models 及 SQLite expert professional 安裝包

開始之前我們先簡(jiǎn)單介紹一下Django中的Models

在Django中,一個(gè)Model對(duì)應(yīng)著一張數(shù)據(jù)表,Model以類的方式表現(xiàn),類中包含了當(dāng)前的表中的字段 及 對(duì)數(shù)據(jù)的操作。所以這里我們只需要以創(chuàng)建類的形式即可創(chuàng)建數(shù)據(jù)表,那么我們?cè)诓僮鲾?shù)據(jù)庫(kù)的時(shí)候不需要敲任何SQL語句,只需要對(duì)類和對(duì)象進(jìn)行相關(guān)操作即可。這無疑是給我們的開發(fā)提供了很便捷的方式,那么為什么Django能實(shí)現(xiàn)這么方便的數(shù)據(jù)庫(kù)操作方法呢,當(dāng)然這種方式(框架)不是Django獨(dú)創(chuàng)的,我們稱它為ORM,而且支持ORM的框架遠(yuǎn)遠(yuǎn)不止Django一種。

什么是ORM

Object Relational Mapping,簡(jiǎn)稱ORM? 對(duì)象關(guān)系映射

這種模式是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)存在的互不匹配的現(xiàn)象的技術(shù)。ORM是通過使用描述對(duì)象和數(shù)據(jù)庫(kù)之間映射的元數(shù)據(jù),將程序中的對(duì)象自動(dòng)持久化到關(guān)系數(shù)據(jù)庫(kù)中。

簡(jiǎn)單來說,它主要實(shí)現(xiàn) 對(duì)象 和 數(shù)據(jù)庫(kù) 之間的映射,封裝數(shù)據(jù)訪問的細(xì)節(jié),開發(fā)中不需要編寫源生SQL語句,給開發(fā)者提供便利。

使用Models創(chuàng)建表 并 從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)

首先我們需要在應(yīng)用目錄下創(chuàng)建models.py ?(如果此文件不存在的話),并在文件中引入models模塊,但Django已經(jīng)幫我們做好了這一步,所以此步驟可以省略。

然后我們?cè)趍odels.py文件中創(chuàng)建一個(gè)以表名命名的類 并 繼承models.Model類(一定要繼承,注意大小寫),在類中創(chuàng)建表的字段 ? (這里表字段就是類中的成員屬性,詳見下圖)

創(chuàng)建表 及 表字段

創(chuàng)建完成后,我們先進(jìn)入manage.py的同級(jí)目錄,接著運(yùn)行python manage.py makemigrations命令準(zhǔn)備數(shù)據(jù)遷移,遷移成功后我們可以看到migrations目錄下系統(tǒng)生成的數(shù)據(jù)遷移文件

準(zhǔn)備數(shù)據(jù)遷移
系統(tǒng)生成的數(shù)據(jù)遷移文件 及 內(nèi)容

數(shù)據(jù)遷移準(zhǔn)備成功后,我們?cè)龠\(yùn)行python manage.py migrate命令執(zhí)行數(shù)據(jù)遷移即可,命令執(zhí)行成功的話,我們的表就創(chuàng)建成功啦。

執(zhí)行數(shù)據(jù)遷移

數(shù)據(jù)遷移成功后,你可以通過python manage.py sqlmigrate blog(應(yīng)用名) 0001(數(shù)據(jù)遷移文件的id) 命令查看系統(tǒng)幫我們建表的SQL語句

查看建表語句

使用SQLite Expert Professional工具添加一條數(shù)據(jù),當(dāng)然Model也是可以創(chuàng)建數(shù)據(jù)的,這里我主要是為了引出這個(gè)我認(rèn)為比較好用的輕量級(jí)管理工具。。。? ? 官方下載地址? ? ? ? ? 百度網(wǎng)盤下載地址

使用管理工具添加一條測(cè)試數(shù)據(jù)

數(shù)據(jù)創(chuàng)建成功后,我們可以通過Model讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)

讀取數(shù)據(jù)

在模板輸出數(shù)據(jù)

輸出數(shù)據(jù)

然后就可以在頁面中看到我們的輸出啦

查看輸出結(jié)果




OK,今天的基本Models使用方式到這里就到這里了,后面會(huì)繼續(xù)更新。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容