django中的數(shù)據(jù)庫遷移的實現(xiàn)
Django是用python寫的web開發(fā)框架,其特點是:
1.重量級框架,內(nèi)部封裝了很多的功能組件,使開發(fā)變的簡便快速,
2.MVT模式:前后端分離,高內(nèi)聚低耦合,m:model,與mvc中的m功能相同,負責和數(shù)據(jù)庫交互,進行數(shù)據(jù)處理,v:view,與mvc中的c功能相同,接收請求,進行業(yè)務(wù)處理,返回應(yīng)答, t:template,與mvc中的v功能相同,負責封裝構(gòu)造要返回的html。
orm:對象關(guān)系映射,主要實現(xiàn)模型對象到數(shù)據(jù)庫數(shù)據(jù)的映射。
1.首先要在models.py中建立模型類,示例:

2.在settings.py文件中把models.py所在的子應(yīng)用也要加入配置項,否則orm數(shù)據(jù)庫無法別識別到

3.將模型類在admin.py中注冊

4.接下來就是數(shù)據(jù)庫遷移的命令
python manage.py migrate # 根據(jù)數(shù)據(jù)庫遷移文件生成對應(yīng)SQL語句并執(zhí)行 # 初次執(zhí)行時為了先把默認Django需要的數(shù)據(jù)庫創(chuàng)建出來 python manage.py makemigrations # 創(chuàng)建數(shù)據(jù)庫遷移文件 # 這次執(zhí)行是為了創(chuàng)建app中的class模型類的遷移文件 python manage.py # 將新添加的模型類遷移文件生成對應(yīng)SQL并執(zhí)行,實際創(chuàng)建出來對應(yīng)的表
Django中默認的數(shù)據(jù)庫實sqlite3

sqlite是一款輕型的數(shù)據(jù)庫,占用資源特別小,大約幾百k內(nèi)存就夠了,它能支持windows/linux/unix等主流的操作系統(tǒng),儲存在磁盤文件中的一個完整的數(shù)據(jù)庫,比一些流行的數(shù)據(jù)庫在大部分普通數(shù)據(jù)庫操作要快,簡單,輕松的api,獨立:沒有額外依賴,支持多種開發(fā)語言,以二進制形式存儲在本地,負載量在10萬以下時性能更佳,省掉了對數(shù)據(jù)庫服務(wù)器的遠程連接甚至會更快
ps:生成遷移和執(zhí)行遷移
django框架就是一款強大的ORM框架,可以不需要寫sql語句就能進行應(yīng)用開發(fā)。
首先需要生成遷移文件,這就“相當于”生成sql語句腳本。
python manage.py makemigrations
這樣就生成了遷移文件,在相對應(yīng)的項目應(yīng)用中可以看到migrations文件夾下,生成一個新文件
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會默認為每一個表生成一個主鍵id。
然后,執(zhí)行遷移。這樣才會生成數(shù)據(jù)庫表。
python manage.py migrat
到此這篇關(guān)于django中的數(shù)據(jù)庫遷移的實現(xiàn)的文章就介紹到這了,更多相關(guān)django 數(shù)據(jù)庫遷移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python基于scapy實現(xiàn)修改IP發(fā)送請求的方法示例
這篇文章主要介紹了Python基于scapy實現(xiàn)修改IP發(fā)送請求的方法,涉及Python網(wǎng)絡(luò)編程中使用scapy操作IP的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-07-07
python3.6的字符串處理f-string的使用技巧分享
在這篇文章中講解了F字符串的基礎(chǔ)使用,對于F字符串有著很多的使用技巧,在這篇文章中你會見識到更多的F字符串的使用技巧,下面小編將介紹python3.6?的字符串處理f-string的使用技巧,需要的朋友可以參考下2024-02-02
Pycharm下載pyinstaller報錯:You?should?consider?upgrading?via
這篇文章主要給大家介紹了關(guān)于Pycharm下載pyinstaller報錯:You?should?consider?upgrading?via?the?'python?-m?pip?install?--upgrade?pip'?command的解決方法,需要的朋友可以參考下2022-02-02
Python使用cx_Freeze庫生成msi格式安裝文件的方法
這篇文章主要介紹了Python使用cx_Freeze庫生成msi格式安裝文件的方法,結(jié)合實例形式分析了Python基于cx_Freeze庫生成msi格式安裝文件操作技巧與相關(guān)問題解決方法,需要的朋友可以參考下2018-07-07
python數(shù)據(jù)類型強制轉(zhuǎn)換實例詳解
這篇文章主要介紹了python數(shù)據(jù)類型強制轉(zhuǎn)換實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
Python時區(qū)設(shè)置方法與pytz查詢時區(qū)教程
這篇文章主要介紹了Python時區(qū)設(shè)置的方法和pytz查詢時區(qū)的方法,大家參考使用吧2013-11-11

