一:資料庫的準備操作:
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。屬性命名限制 字段型別...