第三章:Model 數據層

第一節:數據模型的創建(沒有數據庫的情況)

定義數據模型

數據類型參考表及約束參考表請參考第一章:https://blog.csdn.net/xiangchi7/article/details/85392041#_175
例:
在這裏插入圖片描述

連接MySQL數據庫

Django中雖然有自帶的SQLite這種輕量級的關係型數據庫,但是目前並不完全普及。並且SQLite在併發(包括多進程和多線程)讀寫方面的性能一直不太理想。數據庫可能會出現讀寫操作阻塞或出錯。並且官方網站也指出SQLite不支持外鍵約束。有時候需要訪問其它機器上的SQLite數據庫文件,就會把數據庫文件放置到網絡共享目錄上。這也是非常不安全的(比如數據損壞)。

安裝pymsql
pip3 install pymysql
初始化數據庫引擎

在這裏插入圖片描述

登陸並創建mysql數據庫
# 登陸數據庫
pymysql -u root -p
# 查看數據庫
show databases;
#創建數據庫
create database xxxxx charset=utf8;
定義配置數據庫

在這裏插入圖片描述##### 執行數據遷移

# 生成遷移文件
python manage.py makemigrations
# 數據遷移
python mananger.py migrate
pycham 連接mysql

在這裏插入圖片描述
在這裏插入圖片描述

【翻外篇】自生成數據模型(已有數據庫情況)

連接MySQL數據庫

初始化數據庫引擎

在這裏插入圖片描述

定義配置已有的數據庫

在這裏插入圖片描述

根據數據庫去自動生成新的models文件
# 對數據庫進行映射
python manage.py inspectdb
#導出並且生成models.py
python manage.py inspectdb > models.py

此時,會發現在manage.py的同級目錄下生成了一個models.py文件
使用這個models.py文件覆蓋app中的原models文件。
如果完成了以上的操作,生成的是一個不可修改/刪除的models,修改meta class中的managed = True則可以去告訴django可以對數據庫進行操作

執行數據遷移
# 生成遷移文件
python manage.py makemigrations
# 數據遷移
python mananger.py migrate

第二節:後臺添加用戶和商品

創建系統超級用戶及語言設置請參考第二章Djgo後臺管理:https://blog.csdn.net/xiangchi7/article/details/85629113

註冊數據模型(表名)

在這裏插入圖片描述

創建個性化管理類

個性化管規則可追ModelAdmin查看,也可參考第二章Djgo後臺管理:https://blog.csdn.net/xiangchi7/article/details/85629113

在這裏插入圖片描述

後臺添加數據

  • 添加用戶
    在這裏插入圖片描述- 添加商品
    在這裏插入圖片描述

第三節:表關係的建立

表關係參考

  • 外鍵參考
表關係 代碼 備註
一對一(OneToOneField) model.OneToOneField(object)
一對多(ForeignKey) model.ForeignKey(object)
多對多(ManyToManyField) model.ManyToManyField(object)
  • 處理刪除關聯數據 on_delete 可選參考
刪除關係 代碼 備註
連帶刪除 models.CASCADE 默認值,默認刪除數據(後臺管理的默認)
不給刪 models.PROTECT 不存在關聯時允許,否則不允許
刪後爲NULL models.SET_NULL 關聯的數據爲空
刪後爲默認 models.SET_DEFAULT 關聯數據變回默認,但前提是字段有默認值
刪除時動態指向一個實體 models.SET() 一般不用

定義表關係

在這裏插入圖片描述

通過路由進行增刪改查

常用API參考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章