国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

django中的數(shù)據(jù)庫遷移的實(shí)現(xiàn)

瀏覽:112日期:2024-10-20 10:56:58

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ù)庫交互,進(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ù)庫數(shù)據(jù)的映射。

1.首先要在models.py中建立模型類,示例:

django中的數(shù)據(jù)庫遷移的實(shí)現(xiàn)

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

django中的數(shù)據(jù)庫遷移的實(shí)現(xiàn)

3.將模型類在admin.py中注冊(cè)

django中的數(shù)據(jù)庫遷移的實(shí)現(xiàn)

4.接下來就是數(shù)據(jù)庫遷移的命令

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

Django中默認(rèn)的數(shù)據(jù)庫實(shí)sqlite3

django中的數(shù)據(jù)庫遷移的實(shí)現(xiàn)

sqlite是一款輕型的數(shù)據(jù)庫,占用資源特別小,大約幾百k內(nèi)存就夠了,它能支持windows/linux/unix等主流的操作系統(tǒng),儲(chǔ)存在磁盤文件中的一個(gè)完整的數(shù)據(jù)庫,比一些流行的數(shù)據(jù)庫在大部分普通數(shù)據(jù)庫操作要快,簡(jiǎn)單,輕松的api,獨(dú)立:沒有額外依賴,支持多種開發(fā)語言,以二進(jìn)制形式存儲(chǔ)在本地,負(fù)載量在10萬以下時(shí)性能更佳,省掉了對(duì)數(shù)據(jù)庫服務(wù)器的遠(yuǎn)程連接甚至?xí)?/p>

ps:生成遷移和執(zhí)行遷移

django框架就是一款強(qiáng)大的ORM框架,可以不需要寫sql語句就能進(jìn)行應(yīng)用開發(fā)。

首先需要生成遷移文件,這就“相當(dāng)于”生成sql語句腳本。

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ù)庫表。

python manage.py migrat

到此這篇關(guān)于django中的數(shù)據(jù)庫遷移的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)django 數(shù)據(jù)庫遷移內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 深水埗区| 苏尼特左旗| 丰镇市| 固始县| 大邑县| 黑水县| 和林格尔县| 华阴市| 大方县| 淮阳县| 松江区| 宁河县| 荥经县| 宁津县| 苏尼特右旗| 彭阳县| 望江县| 西畴县| 营山县| 揭西县| 壤塘县| 峡江县| 罗源县| 沅江市| 慈溪市| 广灵县| 定日县| 许昌县| 山东| 日照市| 乌拉特前旗| 龙游县| 兴城市| 青州市| 玉溪市| 香港| 正宁县| 萍乡市| 新安县| 阳谷县| 金坛市|