1. 程式人生 > >Django模型系統(一)

Django模型系統(一)

ger appname data 建模 命令 span 設置 pre 都是

技術分享圖片

裝飾器補充

django模型系統

一,數據庫的鏈接配置

二,Django的ORM簡介

三,模型的創建與激活

四,數據的增刪改查

一,數據庫的鏈接配置

django 鏈接mysql的配置流程:

  -安裝pymysql —— pip install pymysql

技術分享圖片

  -創建數據庫用戶

    -有創建數據庫權限的用戶

技術分享圖片

技術分享圖片

  -創建數據庫

    create database mysite; (創建需要的數據庫)

  -修改配置

技術分享圖片

技術分享圖片

  -修改項目文件(和settings.py文件所在的目錄)下

  __init__.py文件

技術分享圖片

  -設置時區 TIME ZONE = ‘Asia/ShangHai’ #北京時間

二,Django的ORM簡介

技術分享圖片

技術分享圖片

三,模型的創建與激活

創建模型:

  -創建Student的模型,代表學生

技術分享圖片

  verbose_name 人類可讀的時間

  總結:

  1,每一個模型都是django.db.models.Model的子類

  2,類變量 表示模型中的數據庫字段

  3,每一個字段由一個字段類的實例表示

激活模型:

  1,在項目中註冊app

  2,運行數據庫遷移命令(項目根目錄下)

    python mange.py makemigrations teacher(應用名:teacher,不加全部遷移)

技術分享圖片

  告訴django,我們做了哪些數據庫的更改

  遷移

  sqlmigrete 從遷移獲取sql語句

--
-- Create model Student
--
CREATE TABLE `teacher_student` (

`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,

`name` varchar(20) NOT NULL,

`age` smallint NOT NULL,

`sex` smallint NOT NULL,

`qq` varchar(20) NOT NULL,

`phone` varchar(20) NOT NULL,

`c_time` datetime(6) NOT NULL);
COMMIT;

3, 運行migrate命令,使遷移生效

  python manage.py migrate

技術分享圖片

技術分享圖片

# 表名 appname 模型name.lower (表名是app下劃線加上模型的小寫)

四,數據的增刪改查

  -工具 django shell 調試工具

  命令:pythone manage.py shell

  創建:pip install ipython (補全功能)

增加數據方法

  1,Student.objects.create(name=‘魏國‘, age=13)

  2,s1 = Student(name=‘孟傑’, age=25, qq=‘123456‘)

3,

  s2 = Student()

  s2.name = ‘心藍‘

  s2.age = 18

  s2.save()

4, s=Student.objects.get_or_create(name=‘心藍‘)  

In [11]: s
Out[11]: (<Student: 心藍-18>, False) ***查就是False;創建成功就是True

In [12]: s[0]
Out[12]: <Student: 心藍-18>

In [13]: s[0].id
Out[13]: 1

查詢數據

Student.objects.all() #查詢所有

res = Student.objects.all()

res

print(res[1:2].query) #切片

Student.objects.get(name=‘心藍‘) #查詢

Student.objects.get(pk=1) #pk替代主鍵

res = Student.objects.filter(sex=1) #查詢

修改數據

s.age = 16 #通過對象數據進行賦值,進行修改

s.save() #保存

Student.objects.filter(name=‘心藍‘).update(age=18) #修改多條數據

Student.objects.filter(sex=1).delete() #刪除多條數據

Django模型系統(一)