Django 6 模型與資料庫 1

2021-09-28 08:09:53 字數 3037 閱讀 5143

django 對各種資料庫提供了很好的支援, 包括: postgresql、 mysql、 sqlite 和 oracle, 而且為這些資料庫提供了統一的呼叫 api,這些 api 統稱為 orm 框架。 通過使用 django 內建的 orm 框架可以實現資料庫連線和讀寫操作。

orm 框架是一種程式技術,用於實現物件導向程式設計語言中不同型別系統的資料之間的轉換。

從效果上說,其實是建立了乙個可在程式語言中使用的"虛擬物件資料庫' ,通過對虛擬物件資料庫操作從而實現對目標資料庫的操作,虛擬物件資料庫與目標資料庫是相互對應的。

在 django 中,虛擬物件資料庫也稱為模型。通過模型實 現對目標資料庫的讀寫操作,實現方法如下:

配置目標資料庫資訊, 主要在 settings.py 中設定資料庫資訊。

通過模型在目標資料庫中建立相應的資料表。

在檢視函式中通過對模型操作實現目標資料庫的讀寫操作。

下面是setting.py檔案中的配置檔案(假定連線mysql)。

databases = ,

}

建立倆個模型乙個是產品分類表,乙個是產品資訊表。

# 建立產品分類表

class type(models.model):

id = models.autofield(primary_key=true)

type_name = models.charfield(max_length=20)

# 建立產品資訊表

class product(models.model):

id = models.autofield(primary_key=true) # type 中命名乙個名為 id 的字段,該字段的資料型別為整型並設 置為主鍵

name = models.charfield(max_length=50)

weight = models.charfield(max_length=20)

size = models.charfield(max_length=20)

type = models.foreignkey(type, on_delete=models.cascade)

定義好模型後,需要生成遷移檔案並執行使其生成資料表,

生成遷移檔案:

>python manage.py makemigrations
執行遷移檔案:

>python manage .py migrate
django為模型的資料劃分了多種不同的資料型別:

表字段說明models.autofield 

缺省會生成乙個名為id的字段並為int型別 

models.charfield 

字串型別 

models.booleanfield

布林型別 

models.comaseparatedintegerfield

用逗號分割的整數型別 

models.datefield 

日期 cdate) 型別

models.datetimefield 

日期 cdatetime) 型別 

models.decimal 

十進位制小數型別

models.emailfield 

字串型別 (正規表示式郵箱)

models.floatfield

浮點型別 

models.integerfield

整數型別 

models.bigintegerfield 

長整數型別 

models. ip addressfield 

字串型別 (ipv4正規表示式)

models.genericipaddressfield 

字串型別 , 引數protocol可 以 是 : both、 ipv4和 ipv6, 驗證ip位址 

models.nullbooleanfield

允許為空的布林型別 

models.positivelntegerfield

正整數的整數型別

models.positivesmallintegerfied

小正整數型別

models.slugfield 

包含字母、數字、下曲線和連字元的字串 , 常用於 url models

models.smailintegerfield 

小整數型別, 取值範圍 (-32,768---+32,767 ) 

models.textfield 

長文字型別 

models.timefield

時間型別, 顯示時分秒hh:mm[:ss[.uuuuuu]] 

models.urlfield 

字串 , 位址為正規表示式

models.binaryfield 

二進位制資料型別

django 提供的字段型別還會對資料進行正則處理和驗證功 能等,進一步完善了資料的嚴謹性。除了表字段型別之外, 每個表字段還可以設定相 應的引數,使得表字段更加完善。字段引數說明如表 :

引數說明

nuil

如為true, 欄位是可以為空

blank

如為true,設定在admin站點管理中新增資料時可允許空值 

default

設定預設值 

primary_key

如為true, 將字段設定成主鍵 

db_column 

設定資料庫中 的欄位名稱 

unique

如為true, 將字段設定成唯一屬性, 預設為false 

db_index 

如為true, 為字段新增資料庫索引 

verbose_name

在admin站點管理設定欄位的顯示名稱 

related_name 

關聯物件反向引用描述符,用於多表查詢 ,可解決乙個資料表有兩個外 一 鍵同時指向另乙個資料表而出現重名的問題

一對一。

一對多。

多對多。

Django 模型(資料庫)

1.新建專案和應用 django admin.py startproject learn models 新建乙個專案 cd learn models 進入到該項目的資料夾 2.新增應用 django.contrib.admin django.contrib.auth django.contrib.c...

Django模型資料庫配置

在虛擬開發環境中,安裝mysql的資料庫驅動mysqlclient pip install mysqlclient在項 的 settings.py 件中找到databases 配置項,將其資訊修改為 databases 屬性定義語法為 屬性 models.欄位型別 選項 屬性命名規則 autofie...

Django的資料庫 和 模型

安裝 pymysql包 安裝 mysql 客戶端 非必須 sudo pip3 install mysqlclient 建立 和 配置資料庫 建立資料庫 create database mywebdb default charset utf8 collate utf8 general ci 資料庫的配...