根目錄/model.py模塊

from django.db import models
# Create your models here.
class Question(models.Model):
    #Create char type attribute in DB, which length is 200,name is question_text.
    question_text = models.CharField(max_length=200)
    #Create time type attribute in DB, which name is pub_date
    pub_date = models.DateTimeField('date published')
生成的SQL代碼:
mysql> show create table polls_question;
| polls_question | CREATE TABLE `polls_question` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `question_text` varchar(200) NOT NULL,
  `pub_date` datetime(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

class Choice(models.Model):
    #創(chuàng)建外鍵鏈接到Question類中,并且設(shè)置級(jí)聯(lián)刪除
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
生成的SQL代碼:
mysql> show create table polls_choice;
| polls_choice | CREATE TABLE `polls_choice` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `choice_text` varchar(200) NOT NULL,
  `votes` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `polls_choice_question_id_c5b4b260_fk_polls_question_id` (`question_id`),
  CONSTRAINT `polls_choice_question_id_c5b4b260_fk_polls_question_id` FOREIGN KEY (`question_id`) REFERENCES `polls_question` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

在將Model的數(shù)據(jù)庫表中的屬性處理好了之后再將app的配置類相對路徑添加到setting.py中的INSTALLED_APPS的列表中后執(zhí)行命令生成model:
[root@localhost mysite]# python manage.py makemigrations polls
Migrations for 'polls':
  polls/migrations/0001_initial.py
    - Create model Choice
    - Create model Question
    - Add field question to choice
檢查一下生成的SQL語句
[root@localhost mysite]# python manage.py sqlmigrate polls 0001
BEGIN;
--
-- Create model Choice
--
CREATE TABLE `polls_choice` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `choice_text` varchar(200) NOT NULL, `votes` integer NOT NULL);
--
-- Create model Question
--
CREATE TABLE `polls_question` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `question_text` varchar(200) NOT NULL, `pub_date` datetime(6) NOT NULL);
--
-- Add field question to choice
--
ALTER TABLE `polls_choice` ADD COLUMN `question_id` integer NOT NULL;
ALTER TABLE `polls_choice` ADD CONSTRAINT `polls_choice_question_id_c5b4b260_fk_polls_question_id` FOREIGN KEY (`question_id`) REFERENCES `polls_question` (`id`);
COMMIT;

將對數(shù)據(jù)庫模型的修改寫入數(shù)據(jù)庫:
[root@localhost mysite]# python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying polls.0001_initial... OK

到底干了些什么呢?
class 類名:
    變量名=models.xxx(max_length=200)

SQL創(chuàng)建:
    create table App名_類名 ;
    添加 屬性 變量名 數(shù)據(jù)類型 ; 
  • 遷移非常強(qiáng)大饿肺,隨著時(shí)間的推移裸弦,您可以隨著時(shí)間的推移更改您的模型,而不需要?jiǎng)h除您的數(shù)據(jù)庫或表并創(chuàng)建新的模型 - 它專門從事現(xiàn)場升級(jí)數(shù)據(jù)庫,而不會(huì)丟失數(shù)據(jù)
    python manage.py makemigrations
    python manage.py migrate

利用python manage.py shell 執(zhí)行 API 指令:

from polls.models import Question, Choice 
from django.utils import timezone
q = Question(question_text="What's new?", pub_date=timezone.now())
q.save()
q.id
>1
q.question_text
>"What's up?"
查看數(shù)據(jù)庫: 成功寫入
mysql> select * from polls_question;
+----+---------------+----------------------------+
| id | question_text | pub_date                   |
+----+---------------+----------------------------+
|  1 | what's up?    | 2017-07-18 10:44:39.276937 |
+----+---------------+----------------------------+
1 row in set (0.00 sec)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帅刊,一起剝皮案震驚了整個(gè)濱河市走芋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叉寂,老刑警劉巖萍启,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異屏鳍,居然都是意外死亡勘纯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門钓瞭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驳遵,“玉大人,你說我怎么就攤上這事山涡〉探幔” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵鸭丛,是天一觀的道長霍殴。 經(jīng)常有香客問我,道長系吩,這世上最難降的妖魔是什么来庭? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮穿挨,結(jié)果婚禮上月弛,老公的妹妹穿的比我還像新娘。我一直安慰自己科盛,他們只是感情好帽衙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贞绵,像睡著了一般厉萝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天谴垫,我揣著相機(jī)與錄音章母,去河邊找鬼。 笑死翩剪,一個(gè)胖子當(dāng)著我的面吹牛乳怎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播前弯,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蚪缀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恕出?” 一聲冷哼從身側(cè)響起询枚,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浙巫,沒想到半個(gè)月后哩盲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狈醉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年廉油,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苗傅。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抒线,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渣慕,到底是詐尸還是另有隱情嘶炭,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布逊桦,位于F島的核電站眨猎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏强经。R本人自食惡果不足惜睡陪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匿情。 院中可真熱鬧兰迫,春花似錦、人聲如沸炬称。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玲躯。三九已至据德,卻和暖如春鳄乏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棘利。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工橱野, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赡译。 一個(gè)月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓仲吏,卻偏偏與公主長得像不铆,于是被迫代替她去往敵國和親蝌焚。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容