django中的數(shù)據(jù)庫(kù)遷移的實(shí)現(xiàn)
Django是用python寫的web開發(fā)框架,其特點(diǎn)是:
1.重量級(jí)框架,內(nèi)部封裝了很多的功能組件,使開發(fā)變的簡(jiǎn)便快速,
2.MVT模式:前后端分離,高內(nèi)聚低耦合,m:model,與mvc中的m功能相同,負(fù)責(zé)和數(shù)據(jù)庫(kù)交互,進(jìn)行數(shù)據(jù)處理,v:view,與mvc中的c功能相同,接收請(qǐng)求,進(jìn)行業(yè)務(wù)處理,返回應(yīng)答, t:template,與mvc中的v功能相同,負(fù)責(zé)封裝構(gòu)造要返回的html。
orm:對(duì)象關(guān)系映射,主要實(shí)現(xiàn)模型對(duì)象到數(shù)據(jù)庫(kù)數(shù)據(jù)的映射。
1.首先要在models.py中建立模型類,示例:
2.在settings.py文件中把models.py所在的子應(yīng)用也要加入配置項(xiàng),否則orm數(shù)據(jù)庫(kù)無法別識(shí)別到
3.將模型類在admin.py中注冊(cè)
4.接下來就是數(shù)據(jù)庫(kù)遷移的命令
python manage.py migrate # 根據(jù)數(shù)據(jù)庫(kù)遷移文件生成對(duì)應(yīng)SQL語(yǔ)句并執(zhí)行 # 初次執(zhí)行時(shí)為了先把默認(rèn)Django需要的數(shù)據(jù)庫(kù)創(chuàng)建出來 python manage.py makemigrations # 創(chuàng)建數(shù)據(jù)庫(kù)遷移文件 # 這次執(zhí)行是為了創(chuàng)建app中的class模型類的遷移文件 python manage.py # 將新添加的模型類遷移文件生成對(duì)應(yīng)SQL并執(zhí)行,實(shí)際創(chuàng)建出來對(duì)應(yīng)的表
Django中默認(rèn)的數(shù)據(jù)庫(kù)實(shí)sqlite3
sqlite是一款輕型的數(shù)據(jù)庫(kù),占用資源特別小,大約幾百k內(nèi)存就夠了,它能支持windows/linux/unix等主流的操作系統(tǒng),儲(chǔ)存在磁盤文件中的一個(gè)完整的數(shù)據(jù)庫(kù),比一些流行的數(shù)據(jù)庫(kù)在大部分普通數(shù)據(jù)庫(kù)操作要快,簡(jiǎn)單,輕松的api,獨(dú)立:沒有額外依賴,支持多種開發(fā)語(yǔ)言,以二進(jìn)制形式存儲(chǔ)在本地,負(fù)載量在10萬(wàn)以下時(shí)性能更佳,省掉了對(duì)數(shù)據(jù)庫(kù)服務(wù)器的遠(yuǎn)程連接甚至?xí)?/p>
ps:生成遷移和執(zhí)行遷移
django框架就是一款強(qiáng)大的ORM框架,可以不需要寫sql語(yǔ)句就能進(jìn)行應(yīng)用開發(fā)。
首先需要生成遷移文件,這就“相當(dāng)于”生成sql語(yǔ)句腳本。
python manage.py makemigrations
這樣就生成了遷移文件,在相對(duì)應(yīng)的項(xiàng)目應(yīng)用中可以看到migrations文件夾下,生成一個(gè)新文件
operations = [ migrations.CreateModel( name='BookInfo', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('btitle', models.CharField(max_length=20)), ('bpub_date', models.DateTimeField()), ], ), migrations.CreateModel( name='HeroInfo', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('hname', models.CharField(max_length=20)), ('hgender', models.BooleanField()), ('hcontent', models.CharField(max_length=100)), ('hBook', models.ForeignKey(to='booktest.BookInfo')), ], ), ]
django會(huì)默認(rèn)為每一個(gè)表生成一個(gè)主鍵id。
然后,執(zhí)行遷移。這樣才會(huì)生成數(shù)據(jù)庫(kù)表。
python manage.py migrat
到此這篇關(guān)于django中的數(shù)據(jù)庫(kù)遷移的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)django 數(shù)據(jù)庫(kù)遷移內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)文件下載、Cookie以及重定向的方法代碼
本文主要介紹了如何使用 Python 的 requests 模塊進(jìn)行網(wǎng)絡(luò)請(qǐng)求操作,涵蓋了從文件下載、Cookie 處理到重定向與歷史請(qǐng)求等多個(gè)方面,通過詳細(xì)的示例代碼,展示了如何高效地實(shí)現(xiàn)各種網(wǎng)絡(luò)操作,幫助開發(fā)者更輕松地進(jìn)行 HTTP 請(qǐng)求的處理和數(shù)據(jù)管理2025-02-02Django Sitemap 站點(diǎn)地圖的實(shí)現(xiàn)方法
這篇文章主要介紹了Django Sitemap 站點(diǎn)地圖的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Python如何對(duì)音視頻文件進(jìn)行解析詳解
在腳本或應(yīng)用程序中,我們需要執(zhí)行音頻處理任務(wù),下面這篇文章主要給大家介紹了關(guān)于Python如何對(duì)音視頻文件進(jìn)行解析的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11淺析python3中的os.path.dirname(__file__)的使用
這篇文章主要介紹了python3中的os.path.dirname(__file__)的使用,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08Python中創(chuàng)建字典的幾種方法總結(jié)(推薦)
下面小編就為大家?guī)硪黄狿ython中創(chuàng)建字典的幾種方法總結(jié)(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04