人之所以能,是因?yàn)橄嘈拍?/p>
1.1.Django項(xiàng)目連接mysql數(shù)據(jù)庫
Django項(xiàng)目要操作數(shù)據(jù)庫,首先要和數(shù)據(jù)庫建立連接枷恕,才能讓程序中的數(shù)據(jù)和數(shù)據(jù)庫關(guān)聯(lián)起來進(jìn)行數(shù)據(jù)的增刪改查操作
Django項(xiàng)目默認(rèn)使用mysqldb模塊進(jìn)行和mysql數(shù)據(jù)庫之間的交互操作筏养,但是mysqldb模塊對(duì)于python3.4以上的版本支持還不夠完善,所以我們要使用替代方案
?通過pymysql模塊完成和數(shù)據(jù)庫之間的交互過程
Django連接mysql數(shù)據(jù)庫的操作兄朋,是通過 根模塊 的配置實(shí)現(xiàn)的掐禁,在項(xiàng)目根模塊的配置文件settings.py中,我們可以查詢到如下默認(rèn)配置:
DATABASES配置:用于進(jìn)行數(shù)據(jù)庫連接信息的配置
ENGINE:用于特定的數(shù)據(jù)庫引擎的配置颅和,一般選項(xiàng)如下
django.db.backends.sqlite3
django.db.backends.postgresql
django.db.backends.mysql
django.db.backends.oracle
?NAME:要連接的數(shù)據(jù)庫名稱的配置
?USER:配置連接數(shù)據(jù)庫的用戶賬號(hào)
?PASSWORD:配置連接數(shù)據(jù)庫的登錄密碼
?HOST:配置數(shù)據(jù)庫所在的主機(jī)IP地址
?PORT:配置連接數(shù)據(jù)庫的端口號(hào)
?CHARSET:配置連接數(shù)據(jù)庫交互數(shù)據(jù)編碼格式
配置和mysql數(shù)據(jù)庫的連接信息如下:
如此~Django和數(shù)據(jù)庫之間的連接關(guān)系就建立了
1.2.定義創(chuàng)建模型
在Django項(xiàng)目中定義模型數(shù)據(jù)傅事,其實(shí)就是定義class類型,通過類型創(chuàng)建的對(duì)象來封裝管理數(shù)據(jù)峡扩,一定要在這里明確關(guān)聯(lián)和對(duì)應(yīng)關(guān)系
有了對(duì)應(yīng)關(guān)系之后蹭越,我們要?jiǎng)?chuàng)建的模型對(duì)象的屬性必須和數(shù)據(jù)庫中的字段類型對(duì)應(yīng)起來
每個(gè)字段定義時(shí),都會(huì)有自己的一些特殊的選項(xiàng)指定
在大部分項(xiàng)目中教届,還會(huì)涉及到多表關(guān)聯(lián)操作
根據(jù)創(chuàng)建的個(gè)人博客响鹃,創(chuàng)建用戶類型和文章類型如下:
mysite/myblog/views.py
2.數(shù)據(jù)庫同步操作
創(chuàng)建好我們需要的模型類之后驾霜,需要將創(chuàng)建好的類型添加到數(shù)據(jù)庫中并同時(shí)建立關(guān)聯(lián)關(guān)系
恭喜你,非常明智的選擇了Django作為你項(xiàng)目開發(fā)的基礎(chǔ)框架买置!
?根據(jù)模型類自動(dòng)生成對(duì)應(yīng)數(shù)據(jù)庫引擎的sql語句
在settings.py中粪糙,連接數(shù)據(jù)庫信息中配置了數(shù)據(jù)庫引擎,其實(shí)就是已經(jīng)告訴Django我們使用的是哪個(gè)數(shù)據(jù)庫了忿项,Django會(huì)根據(jù)指定的數(shù)據(jù)庫自動(dòng)生成sql語句
python manage.py makemigrations
查看生成的sql語句
通過命令自動(dòng)生成sql語句之后是存儲(chǔ)在文件中的蓉冈,我們可以通過命令的方式直接查看生成的sql語句
例:python manage.py sqlmigrate myblog 0001
自動(dòng)同步到數(shù)據(jù)庫
既然Django可以自動(dòng)生成sql語句,當(dāng)然可以自動(dòng)同步到數(shù)據(jù)庫中轩触,并不需要開發(fā)人員再去手工創(chuàng)建各種數(shù)據(jù)表了
例:python manage.py migrate