django - 模型層及ORM介紹
阿新 • • 發佈:2021-06-20
模型層及ORM介紹
-
模型層 負責根資料庫之間進行通訊
-
Django配置mysql
- 按照mysqlclient【版本msqlclient 1.3.13以上】
- 安裝前確認系統中是否安裝了python3-dev和default-libmysqlclient-dev
sudo apt list --installed | grep -E 'libmysqlclient-dev | python3-dev'
- 若沒安裝則執行
sudo apt-get install python3-dev default -libmyqlclient-dev
sudo pip3 install mysqlclient
-
建立資料庫
-
進入MySQL資料庫執行
create database 資料庫名default charset utf8
- 通常資料庫名稱和專案名稱保持一致
-
settings.py中進行資料庫的配置
-
修改DATABASES配置項的內容
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql',# 資料庫引擎 'NAME': 'yun_note', # 資料庫名稱 'HOST': '127.0.0.1', #連線資料庫的地址 'PORT': '3306', # 連線資料庫的埠 'USER': 'root', # 連線資料庫的使用者名稱 'PASSWORD': '123456', # 連線資料庫的密碼 } }
-
-
-
建立模型類
- 模型類是python類,它是由
django.db.models.Model
派生的子類 - 一個模型類代表資料庫中的一張資料表
- 模型類中每個類屬性都代資料庫中的一個欄位
- 模型是資料互動的介面,是表示和操作資料庫的方式和方法
- 模型類是python類,它是由
-
ORM 框架內
-
ORM object Relational Mapping 物件對映關係,它是一種程式技術,允許你使用類和物件的方式對資料庫操作,避免通過sql語句來操作資料庫
-
作用:
-
建立模型類和表之間的對應關係,通過面向物件的方式來操作資料庫
-
根據設計的模型類生成資料庫中的資料表
-
通過簡單的配置就可以進行資料庫型別切換
from django.db import models # Create your models here. class users(models.Model): username = models.CharField('使用者名稱', max_length=30,unique=True) password = models.CharField('密碼', max_length=32) active = models.BooleanField('是否啟用', default=1) createTime = models.DateTimeField('建立時間',auto_now_add=True) upadateTime = models.DateTimeField('更新時間', auto_now=True) # 格式化返回物件 def __str__(self): return 'username %s '%(self.username) # 資料庫 遷移檔案生成一箇中間檔案 python manage.py makemigrations # 資料庫遷 將每個應用下的migrations目錄的中間檔案同步回資料庫 python manage.py migrate 生成的資料庫表名預設為`應用名_模型類小寫`
-
-
ORM 基礎欄位及選項
- 模型類基礎欄位型別
- BooleanField()
- CharField()
- 必須由max_length引數值
- DateField()
- auto_now:每次儲存物件時,自動設定該欄位為當前時間
- auto_now_add:當第一次被建立時自動設定為當前時間
- default:設定當前時間
- ** 三個引數只能多選一 **
- DateTimeField() 同DatField()
- FloatField()
- DecimalField()
- EmailField()
- IntegerField()
- ImageField()
- TextField()