django 06 模型類遷移建表

2021-10-23 22:12:19 字數 2229 閱讀 7339

一:資料庫的準備操作:

1:建立資料庫:

mysql -uroot -pmysql

create database django_demo default charset=utf8;

2:配置資料庫:

修改setting:

databases =

}

3:安裝mysql資料庫的客戶端驅動:

先進入虛擬環境:

然後安裝客戶端驅動:

二:模型類遷移建表:

1:定義模型類:

模型類被定義在子應用/models.py檔案中

模型類必須繼承自model類,位於django.db.models中

建立子應用booktest,並在其models.py檔案中定義模型類

注意:資料庫的鍵對應模型類的類屬性,所以不能定義在方法內部。

class

bookinfo

(models.model)

:"""圖書資訊:演示一對多,一方"""

btitle = models.charfield(max_length=

20, verbose_name=

'書名'

) bpub_date = models.datefield(verbose_name=

'發布日期'

) bread = models.integerfield(default=

0, verbose_name=

'閱讀量'

) bcomment = models.integerfield(default=

0, verbose_name=

) is_delete = models.booleanfield(default=

false

, verbose_name=

'邏輯刪除'

)class

meta

:"""模型類的元類:用於修改、配置模型類對應的資料表"""

db_table =

'tb_books'

# 自定義資料庫表名

def__str__

(self)

:"""定義每個資料物件的顯示資訊"""

return self.btitle # 輸出該模型資料物件時,只輸出書名

class

heroinfo

(models.model)

:"""英雄資訊:演示一對多,多方"""

# 確定性別字段的取值範圍

gender_choices =((

0,'female'),

(1,'male'))

hbook = models.foreignkey(bookinfo, on_delete=models.cascade, verbose_name=

'英雄屬於的圖書'

) hname = models.charfield(max_length=

20, verbose_name=

'人名'

) hgender = models.smallintegerfield(choices=gender_choices, default=

0, verbose_name=

'性別'

) hcomment = models.charfield(max_length=

200, null=

true

, verbose_name=

'描述資訊'

) is_delete = models.booleanfield(default=

false

, verbose_name=

'邏輯刪除'

)class

meta

: db_table =

'tb_heros'

def__str__

(self)

:return self.hname

python manage.py makemigrations

python manage.py migrate

Django 06 專案完成

定義檢視 from django.shortcuts import render from models import bookinfo 首頁,展示所有圖書 defindex reqeust 查詢所有圖書 booklist bookinfo.objects.all 將圖書列表傳遞到模板中,然後渲染模...

Django模型修改及資料遷移

migrations django中對model進行修改是件麻煩的事情,syncdb命令僅僅建立資料庫裡還沒有的表,它並不對已存在的資料表進行同步修改,也不處理資料模型的刪除。如果你新增或修改資料模型裡的字段,或是刪除了乙個資料模型,你需要手動在資料庫裡進行相應的修改或者使用south。django...

Django模型類定義

資料庫表名 可通過db table指明資料庫表名。關於主鍵 django會為表建立自動增長的主鍵列,每個模型只能有乙個主鍵列,如果使用選項設定某屬性為主鍵列後django不會再建立自動增長的主鍵列。預設建立的主鍵列屬性為id,可以使用pk代替,pk全拼為primary key。屬性命名限制 字段型別...