參考官方中文鏈接:編寫你的第一個(gè) Django 應(yīng)用
因?yàn)镈jango的特殊性,所以我們可以使用對(duì)象關(guān)系映射(ORM,Object Relational Mapping),簡(jiǎn)單的說就是用操作類的形式操作數(shù)據(jù)庫(kù)。
在前一篇文章編寫你的第一個(gè) Django 應(yīng)用的基礎(chǔ)上顷编,我們繼續(xù)進(jìn)行以下操作來使用Django模型。
一剑刑、數(shù)據(jù)庫(kù)配置
1媳纬、通常,配置文件使用 SQLite 作為默認(rèn)數(shù)據(jù)庫(kù)施掏。如果你使用了 SQLite 以外的數(shù)據(jù)庫(kù)比如MySQL钮惠,請(qǐng)確認(rèn)在使用前已經(jīng)創(chuàng)建了數(shù)據(jù)庫(kù)比如testdb:
2、安裝PyMySQL:打開cmd七芭,輸入pip install PyMySQL:
3素挽、在\myblog\article\__init__.py里添加以下代碼:
4、在\myblog\myblog\settings.py里進(jìn)行數(shù)據(jù)庫(kù)配置:
1狸驳、設(shè)置sql_mode:從MySQL 5.7開始以及在MySQL 5.6的全新安裝中预明,sql_mode選項(xiàng)的默認(rèn)值包含STRICT_TRANS_TABLES。當(dāng)數(shù)據(jù)在插入時(shí)被截?cái)鄷r(shí)耙箍,該選項(xiàng)會(huì)將警告升級(jí)為錯(cuò)誤撰糠,因此Django強(qiáng)烈建議為MySQL激活嚴(yán)格模式以防止數(shù)據(jù)丟失(STRICT_TRANS_TABLES或STRICT_ALL_TABLES)。
2辩昆、如果您需要自定義SQL模式阅酪,則可以像配置其他MySQL選項(xiàng)一樣設(shè)置sql_mode變量:在配置文件中或在數(shù)據(jù)庫(kù)配置的OPTIONS部分中使用條目'init_command':“ SET sql_mode='STRICT_TRANS_TABLES'”進(jìn)行設(shè)置。
二、Django模型
1遮斥、編輯models.py文件,改變模型:
2扇丛、運(yùn)行python manage.py makemigrations為模型的改變生成遷移文件术吗。相當(dāng)于在該app下建立 migrations目錄,并記錄下你所有的關(guān)于modes.py的改動(dòng)帆精,比如0001_initial.py较屿, 但是這個(gè)改動(dòng)還沒有作用到數(shù)據(jù)庫(kù)文件。
3卓练、運(yùn)行python manage.py migrate來應(yīng)用數(shù)據(jù)庫(kù)遷移隘蝎。將該改動(dòng)作用到數(shù)據(jù)庫(kù)文件,比如產(chǎn)生table之類襟企。
4嘱么、為了方便大多數(shù)項(xiàng)目,Django默認(rèn)激活了一些應(yīng)用顽悼,但并不是每個(gè)人都需要它們曼振。如果你不需要某個(gè)或某些應(yīng)用,你可以在運(yùn)行migrate前毫無顧慮地從INSTALLED_APPS里注釋或者刪除掉它們蔚龙。migrate命令只會(huì)為在INSTALLED_APPS里聲明了的應(yīng)用進(jìn)行數(shù)據(jù)庫(kù)遷移冰评。
5、運(yùn)行后查看數(shù)據(jù)庫(kù)木羹,可以查看生成的表格: