Django學(xué)習(xí)筆記:模型層和ORM
無(wú)論是springboot的MVC還是Django的MTV都有共同的M部分(Model)
springboot有很多的orm框架,最常用的是mybatis,而Django使用的是mysqlclient
springboot連接數(shù)據(jù)庫(kù)的方式是jdbc,而Django連接數(shù)據(jù)庫(kù)的方式是pymysql或者是mysqlclient,這里我使用mysqlclient來(lái)連接數(shù)據(jù)庫(kù)
配置mysqlclient
我在pycharm中來(lái)做一個(gè)環(huán)境配置
首先在pycharm的配置好解釋器,這里我選用了我的conda環(huán)境里的base

以后window的項(xiàng)目學(xué)習(xí)都在base中進(jìn)行,在命令行中激活base后

我的電腦已經(jīng)有mysql了,這里就只需要下載mysqlclient
配置鏈接數(shù)據(jù) ,數(shù)據(jù)庫(kù)‘django’得先創(chuàng)建出來(lái)

模型
模型是一個(gè)python的類,繼承了django.db.models.Model。
一個(gè)模型類就代表數(shù)據(jù)庫(kù)中的一張表。
每一個(gè)類的類屬性就代表著數(shù)據(jù)庫(kù)中的一個(gè)字段。
模型是數(shù)據(jù)交互的接口,是表示和操作數(shù)據(jù)庫(kù)的方法和方式
ORM框架概述
對(duì)象關(guān)系映射框架,可以避免對(duì)SQL的語(yǔ)句的直接編寫(xiě),可以通過(guò)面向?qū)ο蟮姆绞絹?lái)操作數(shù)據(jù)庫(kù)。

可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)和數(shù)據(jù)模型的解耦。
當(dāng)然性能上有損失,但是這是可容忍的。

如果模型沒(méi)有聲明主鍵,那么django將自動(dòng)生成一個(gè)主鍵id字段給數(shù)據(jù)庫(kù)表
與django的migrate相比,springboot還是太原始了。