Django中怎么建立Model模型-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)Django 中怎么建立Model模型,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)公司專注于萊西企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。萊西網(wǎng)站建設(shè)公司,為萊西等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

Django Model 模型

Django Model層是Django的數(shù)據(jù)模型層,每一個Model類就是數(shù)據(jù)庫中的一張表;

我們需要注意下面幾點:

  • model一般都是定義在不同的APP的models.py模塊文件中,可以是一個,也可以是多個;

  • 不同model之間可以相互關(guān)聯(lián),類似表直接的關(guān)聯(lián);

  • APP中一旦定義了model,必須將此APP添加到settings文件中;

  • 且一定要記得運行makemigrations檢查model更新和migrate同步數(shù)據(jù)模型在數(shù)據(jù)庫中建表(這兩個操作大家記得在哪里操作嗎,之前的文章有寫,快捷鍵就是Alt+Ctrl+R);

如何定義一個數(shù)據(jù)model模型

我們一起來看一下如何定義一個數(shù)據(jù)model模型,具體有哪些操作:

  • 首先我們需要在APP中的models.py創(chuàng)建Model,我們用courses APP來操作一下

from django.db import models
class Course(models.Model):
    name = models.CharField(max_length=50, verbose_name="課程名")
    desc = models.CharField(max_length=300, verbose_name=u"課程描述")
    degree = models.CharField(choices=(("primary", '初級'), ("middle","中級"), ("junior", "高級")), max_length=10, verbose_name='課程難度')
    students = models.IntegerField(default=0, verbose_name="學(xué)習(xí)人數(shù)")
    # 需要安裝pillow,圖片處理庫
    image = models.ImageField(upload_to="courses/%Y/%m", verbose_name="課程圖片", max_length=100)
    class Meta:
        verbose_name = "課程"
        verbose_name_plural = verbose_name

我們知道每一個Model類就是數(shù)據(jù)庫中的一張表,那這段代碼中我們定義了五個字段,代表相應(yīng)的數(shù)據(jù)庫表中也有五個字段,大家注意一下字段的類型(等一下我們再來講解關(guān)于字段類型),
這個表其實就想當于以下代碼:

create table courses_course(
    id int not null primary key,
    name varchar(50),
    desc varchar(300),
    degree varchar(10),
    students int(11),
    image varchar(100),
);

然后我們需要在數(shù)據(jù)庫中生成數(shù)據(jù)表,執(zhí)行makemigrations在app下建立migrations目錄,并記錄下所有關(guān)于models.py的改動,比如0001_initial.py, 但是這個改動還沒有作用到數(shù)據(jù)庫文件,接著執(zhí)行migrate將改動作用到數(shù)據(jù)庫文件,比如產(chǎn)生table之類;

最后可以登錄mysql數(shù)據(jù)庫檢查表是否創(chuàng)建成功,大家還記得怎么登錄mysql數(shù)據(jù)庫嗎?
先開啟mysql數(shù)據(jù)庫,我是用的Winginx中的mysql數(shù)據(jù)庫,所以我只需要在Winginx打開就好,然后在命令行工具中輸入:

mysql -ufirst_project -p123456
我的用戶名是first_project ,密碼是123456

然后我們在數(shù)據(jù)庫中查看表是否成功

use First_Project   # 我的數(shù)據(jù)庫是First_Project 
 show tables;  # 查看所有表

Django 中怎么建立Model模型

我們是不是能看到有一個courses_course表呀,然后輸入命令行desc courses_course;

Django 中怎么建立Model模型

Field 字段類型

IntegerField:整型字段;

CharField:字符型字段,該字段類型有一個必需參數(shù):max_length 在數(shù)據(jù)庫水平限定了字符串大長度;

ImageField:圖像字段,能自動驗證上傳的對象是否為合法的圖像;

FloatField:浮點字段;

AutoField:根據(jù)已有id自增長的整型唯字段,一般每個model類不需設(shè)置該字段,因為django會為每個model自動設(shè)置;

以上就是Django 中怎么建立Model模型,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

新聞標題:Django中怎么建立Model模型-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article46/dhepeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站策劃域名注冊、網(wǎng)站內(nèi)鏈網(wǎng)站排名、標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)