Django_Models

Models介紹

Django中的Models是什么?

? ? ? 通常,一個Models對應(yīng)數(shù)據(jù)庫中的一張數(shù)據(jù)表

? ? ? Django中的Models以類的形式表現(xiàn)

? ? ?它包含了一些基本字段以及數(shù)據(jù)的一些行為


ORM

? ? ? 對象關(guān)系映射(Object Relation Mapping)

? ? ? 實現(xiàn)了對象和數(shù)據(jù)庫之間的映射

? ? ?隱藏了數(shù)據(jù)訪問的細節(jié),不需要編寫SQL語句


編寫Models

步驟:

? ? ?1.在應(yīng)用根目錄下創(chuàng)建models.py,并引入models模塊(Django已經(jīng)幫我們自動生成了)

? ? ? 2. 創(chuàng)建類,繼承models.Model,該類即是一張數(shù)據(jù)表

? ? ? 3. 在類中創(chuàng)建字段

? ? ? ? ? ? ? 字段創(chuàng)建:字段即類里面的屬性

? ? ? ? ? ? ? att= models.CharField(max_length=64)

? ? ? ? ? ? ? 更多的字段屬性參考Django官網(wǎng)

? ? ? ?4.生成數(shù)據(jù)表

? ? ? ? ? ?①.步驟:命令行中進入manage.py同級目錄

? ? ? ? ? ?②.執(zhí)行Python? manage.py makemigrations app名(可選)? ? //數(shù)據(jù)遷移,不寫參數(shù)名默認項目全部數(shù)據(jù)遷移

? ? ? ? ? ?③.再執(zhí)行python manage.py migrate? ? ? //數(shù)據(jù)遷移



eg:

在應(yīng)用項目下的models.py文件中:

class Acticle(models.Model):

? ? ? ? title= models.CharField(max_length=64,default='title')

? ? ? ?content= models.TextField(null = True)

然后打開命令行輸入python manage.py makemigrations?

然后執(zhí)行Python manage.py migrate

如此便是成功了,可以看到生成了好多,很多都是Django的默認的數(shù)據(jù)遷移。



如何查看我們建的數(shù)據(jù)表呢:

①.可以在該APP下的migrations文件中(遷移文件)可以看到我們創(chuàng)建的數(shù)據(jù)表的信息。

②執(zhí)行python manage.py sqlmigrate 應(yīng)用名 文件id 查看SQL語句

③.默認sqlite3的數(shù)據(jù)庫在項目根目錄下的db.sqlite3?

? ? ? 要使用第三方軟件打開,SQLite Expert Personal,? 輕量級,完全免費。如此便可以看到我們建的數(shù)據(jù)表

頁面呈現(xiàn)數(shù)據(jù)

后臺步驟:

? ? ? 1.views.py中import models

? ? ? 2.article = models.Article.objects.get(pk=1)

? ? ? 3.通過render(request,page,{‘a(chǎn)rticle’:article})

前端步驟:

模板可直接使用對象以及對象的? “.” 操作

{{article.title}}

eg:

在views.py文件中:

def indexhtml(request):

? ? ? ?article= models.Acticle.objects.get(pk=1)? ? ? ?//返回的是主鍵為1的信息。

? ? ? ?return render(request,'blog/index.html',{'article':article})

在HTML文件中:

?<h1>{{article.title }}</h1>

?<h1>{{article.content}}</h1>

運行結(jié)果:

數(shù)據(jù)庫表:

一致,取出數(shù)據(jù)成功!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容