溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何設(shè)計(jì)Django中的模型類

發(fā)布時(shí)間:2020-07-22 09:29:43 來(lái)源:億速云 閱讀:123 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要講解了如何設(shè)計(jì)Django中的模型類,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

django中設(shè)計(jì)數(shù)據(jù)模型類是基于ORM的對(duì)象關(guān)系映射更方便的進(jìn)行數(shù)據(jù)庫(kù)中的數(shù)據(jù)操作。

  • 對(duì)象關(guān)系映射
  • 把面向?qū)ο笾械念惡蛿?shù)據(jù)庫(kù)表--對(duì)應(yīng),通過(guò)操作類和對(duì)象,對(duì)數(shù)表實(shí)現(xiàn)數(shù)據(jù)操作,不需要寫sql,由ORM框架生成
  • django實(shí)現(xiàn)了ORM框架,在項(xiàng)目中與數(shù)據(jù)庫(kù)之間產(chǎn)生橋梁作用
  • django數(shù)據(jù)庫(kù)定義模型的步驟如下:
python manage.py makemigrations
python mange.py migrate
  • 在應(yīng)用models.py中編寫模型類,繼承models.Model類
  • 在模型類中,定義屬性,生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)表字段
  • 屬性名 = models.字段類型
  • 字段類型 -- 一旦修改類型就需要重新遷移

AutoField: 自動(dòng)增長(zhǎng),通常不需要指定,django自動(dòng)創(chuàng)建名為id的自動(dòng)增長(zhǎng)屬性
CharField: 字符串,必須指定的參數(shù): max_length 最大字符個(gè)數(shù)
TextFiled: 大文本字段,一般超過(guò)4000個(gè)字符
IntegerField: 整形
BooleanField: 布爾,支持Null,True
NullBooleanField: 支持Null,True,F(xiàn)alse
DateTimeField: 日期時(shí)間
FileField: 上傳文件字段
ImageField: 繼承與FileFiled,對(duì)上傳的內(nèi)容進(jìn)行校驗(yàn),確保是有效地圖片
ForeignKey: 外鍵,建立一對(duì)多關(guān)系

from django.db import models

# Create your models here.

class Subject(models.Model):
 """學(xué)科模型類"""
 nu = models.AutoField(primary_key=True)
 name = models.CharField(max_length=20,verbose_name = '學(xué)科名稱')
 intro = models.CharField(max_length=1000,verbose_name = '學(xué)科介紹')

 class Meta:
  db_table = 'tb_subject'
  verbose_name = '學(xué)科'
  verbose_name_plural = verbose_name

 def __str__(self):
  """定義數(shù)據(jù)對(duì)象的顯示信息"""
  return self.name

如何設(shè)計(jì)Django中的模型類

在pycharm終端中執(zhí)行數(shù)據(jù)庫(kù)建立遷移

python manage.py makemigrations

python manage.py migrate

migrations文件中會(huì)建立一個(gè).py文件

我們可以通過(guò)django自帶的admin后臺(tái)來(lái)看見我們所創(chuàng)建的數(shù)據(jù)模型類。

Aadmin

使用時(shí)先創(chuàng)建一個(gè)用戶名和密碼

在pycharm終端中輸入命令

python manage.py createsuperuser

根據(jù)提示輸入用戶名,郵箱,密碼。

如何設(shè)計(jì)Django中的模型類

并且在admin.py注冊(cè)模型類 并且顯示該有的數(shù)據(jù)列表

如何設(shè)計(jì)Django中的模型類

然后開啟django項(xiàng)目輸入 http://127.0.0.1 :8000/admin/

用戶名和密碼填寫

登陸進(jìn)去后就會(huì)看到創(chuàng)建的數(shù)據(jù)模型

如何設(shè)計(jì)Django中的模型類

點(diǎn)擊add可以添加一些數(shù)據(jù)

會(huì)有你寫的模型類

如何設(shè)計(jì)Django中的模型類

因?yàn)閯偛爬^承了SubjectAdmin類要求顯示學(xué)科的信息。

如何設(shè)計(jì)Django中的模型類

我們現(xiàn)在可以將模型數(shù)據(jù)映射視圖,展示到html頁(yè)面上。

在Views.py文件中使用Subject將數(shù)據(jù)集合拿到

如何設(shè)計(jì)Django中的模型類

在templates文件夾中創(chuàng)建一個(gè)index.html文件

使用django模板中的for循環(huán)將數(shù)據(jù)插入到html頁(yè)面中

如何設(shè)計(jì)Django中的模型類

啟動(dòng)django,打開本地網(wǎng)址

如何設(shè)計(jì)Django中的模型類

我們可以給頁(yè)面添加照片可以使得頁(yè)面更好看點(diǎn)

添加放置照片的文件夾在更目錄的同級(jí)目錄下

如何設(shè)計(jì)Django中的模型類

并且在settings中對(duì)static文件夾路徑加以說(shuō)明

如何設(shè)計(jì)Django中的模型類

在將html頁(yè)面修改

添加照片路徑

如何設(shè)計(jì)Django中的模型類

然后啟動(dòng)django點(diǎn)擊本地連接

如何設(shè)計(jì)Django中的模型類

接下來(lái)可以再加入模型數(shù)據(jù)庫(kù),點(diǎn)擊學(xué)科的時(shí)候可以展示那些老師以及老師的介紹。實(shí)現(xiàn)了數(shù)據(jù)的多對(duì)一或者一對(duì)多。

在models.py中建立老師的模型類

如何設(shè)計(jì)Django中的模型類

在admin.py中注冊(cè)老師得模型類

如何設(shè)計(jì)Django中的模型類

進(jìn)入admin后臺(tái),添加老師的一些數(shù)據(jù)

如何設(shè)計(jì)Django中的模型類

現(xiàn)在點(diǎn)擊科目,進(jìn)入到老師的詳情頁(yè),那的寫html文件和修改urls.py

再templatels文件夾中建立teachers.html文件

如何設(shè)計(jì)Django中的模型類

在書寫views.py,

如何設(shè)計(jì)Django中的模型類

然后點(diǎn)擊科目獲取老師數(shù)據(jù)

如何設(shè)計(jì)Django中的模型類

如何設(shè)計(jì)Django中的模型類

如何設(shè)計(jì)Django中的模型類

django的簡(jiǎn)單項(xiàng)目關(guān)于模型的展示設(shè)計(jì)都完成啦?。?!

看完上述內(nèi)容,是不是對(duì)如何設(shè)計(jì)Django中的模型類有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI