一:django中orm建立表關係
1.表與表之間的關係
2.orm中如何定義三種關係1.表與表之間的關係
一對多一對一
多對多2.操作目標條件:
圖書表出版社表
作者表作者詳情表
3.外來鍵關聯
一對多:
圖書和出版社是一對多的關係 外來鍵字段建在多的那一方 book
多對多:
圖書和作者是多對多的關係 需要建立第三張表來專門儲存
一對一:
作者與作者詳情表是一對一
4.表關係的判斷
換位思考
orm針對外來鍵字段的建立位置
1.不常用的資料我們稱之為冷資料
2.常用的資料我們稱之為熱資料
一對多: 外來鍵建立在多的一方
一對一: 建在任何一方都可以 但是推薦建在查詢頻率較高的表中
多對多: orm自動幫你建立第三張關聯表
3.orm建立表關係models.py檔案1.一對多
(圖書和出版社是一對多) 並且書是多的一方 所有外來鍵字段放在書表裡面
# 預設就是與出版社表的主鍵欄位做外來鍵關聯
publish = models.foreignkey(to='publish')
如果字段對應的是foreignkey 那麼會orm會自動子啊字段的後面加_id
如果自己自作聰明的加了id 那麼orm還是會在後面繼續加_id
後面在定義foreignkey的時候就不要自己加_id
2.多對多
# 自動幫你建立書籍和作者的第三張表
authors = models.manytomanyfield(to='author')
authors是乙個虛擬字段 主要是用來告訴orm 書籍表和作者表是多對多關係
讓orm自動幫你建立第三張關係表
3.一對一
# 作者與作者詳細是一對一的關係 外來鍵建在查詢頻率較高的表中
author_detail = models.onetoonefield(to='authordetail')
onetoonefield也會自動給字段加_id字尾
所有不要自作聰明 自己加字尾_id
# 會自動在字段後面加_id字尾
foreignkey
onetoonefield
4.在settings.py配置檔案修改配置from django.db import models
# 圖書表
class book(models.model):
# title varchar(32)
title = models.charfield(max_length=32)
# 總共八位 小數點後面佔兩位 9**)
print = models.decimalfield(max_digits=8,decimal_places=2)
# (圖書和出版社是一對多) 並且書是多的一方 所有外來鍵字段放在書表裡面
# 預設就是與出版社表的主鍵欄位做外來鍵關聯
publish = models.foreignkey(to='publish')
"""如果字段對應的是foreignkey 那麼會orm會自動子啊字段的後面加_id
如果自己自作聰明的加了id 那麼orm還是會在後面繼續加_id
後面在定義foreignkey的時候就不要自己加_id
"""# # 自動幫你建立書籍和作者的第三張表
authors = models.manytomanyfield(to='author')
# authors是乙個虛擬字段 主要是用來告訴orm 書籍表和作者表是多對多關係
# 讓orm自動幫你建立第三張關係表
# 出版社表
class publish(models.model):
name = models.charfield(max_length=32)
addr = models.charfield(max_length=32)
# 作者表
class author(models.model):
name = models.charfield(max_length=32)
age = models.integerfield()
# 作者與作者詳細是一對一的關係 外來鍵建在查詢頻率較高的表中
author_detail = models.onetoonefield(to='authordetail')
"""onetoonefield也會自動給字段加_id字尾
所有不要自作聰明 自己加字尾_id
"""# 作者詳細資訊表
class authordetail(models.model):
# phone **
phone = models.bigintegerfield() # 或者直接字元型別
# addr 位址
addr = models.charfield(max_length=32)
5.在專案資料夾或者應用資料夾內的__init__.py檔案中書寫固定的**1.在settings.py配置檔案修改配置
"""django預設使用自帶的sqlite3"""
databases =
}
2.在專案資料夾或者應用資料夾內的__init__.py檔案中書寫固定的**
import pymysql
pymysql.install_as_mysqldb()
在django1.x版本中外鍵預設都是級聯更新刪除的
django中orm建立表的對應關係
django中的orm支援幫我們建立表與表之間的對應關係。一對一,一對多,及多對多。如我們要建立 圖書表與出版社表是一對多的關係。假設一本書只能由乙個出版社出版 圖書表與作者表之間是多對多的關係。作者表與作者詳情表之間是一對一的關係。models.py class book models.model...
Django中的ORM(物件關係對映)
django與資料庫的命令互動主要是通過manage.py,常用的命令就是manage.py syncdb,可以將model中不在資料庫中存在的表給建立完成,但是只能建立新的資料表或者列,如果model中將某個已經建立的資料表刪除,syncdb是不會進行同步刪除的操作的。為什麼要使用orm orm是...
django之ORM物件關係對映
orm 物件關係對映,物件關係對映的意思就是在python中 類對應資料庫中的 物件對應 中的記錄。屬性對應 中的字段。orm通過讓我們程式設計師使用物件導向的思想來運算元據庫,不用直接再編寫sql語句。提高開發效率。資料建模 簡單地說就是使用資料庫來描述我們的業務邏輯。teacher表 name ...