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ù)成功!