您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Django 中怎么建立Model模型,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Django Model層是Django的數據模型層,每一個Model類就是數據庫中的一張表;
我們需要注意下面幾點:
model一般都是定義在不同的APP的models.py模塊文件中,可以是一個,也可以是多個;
不同model之間可以相互關聯,類似表直接的關聯;
APP中一旦定義了model,必須將此APP添加到settings文件中;
且一定要記得運行makemigrations檢查model更新和migrate同步數據模型在數據庫中建表(這兩個操作大家記得在哪里操作嗎,之前的文章有寫,快捷鍵就是Alt+Ctrl+R);
我們一起來看一下如何定義一個數據model模型,具體有哪些操作:
首先我們需要在APP中的models.py創建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="學習人數") # 需要安裝pillow,圖片處理庫 image = models.ImageField(upload_to="courses/%Y/%m", verbose_name="課程圖片", max_length=100) class Meta: verbose_name = "課程" verbose_name_plural = verbose_name
我們知道每一個Model類就是數據庫中的一張表,那這段代碼中我們定義了五個字段,代表相應的數據庫表中也有五個字段,大家注意一下字段的類型(等一下我們再來講解關于字段類型),
這個表其實就想當于以下代碼:
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), );
然后我們需要在數據庫中生成數據表,執行makemigrations
在app下建立migrations
目錄,并記錄下所有關于models.py的改動,比如0001_initial.py
, 但是這個改動還沒有作用到數據庫文件,接著執行migrate
將改動作用到數據庫文件,比如產生table之類;
最后可以登錄mysql數據庫檢查表是否創建成功,大家還記得怎么登錄mysql數據庫嗎?
先開啟mysql數據庫,我是用的Winginx中的mysql數據庫,所以我只需要在Winginx打開就好,然后在命令行工具中輸入:
mysql -ufirst_project -p123456 我的用戶名是first_project ,密碼是123456
然后我們在數據庫中查看表是否成功
use First_Project # 我的數據庫是First_Project show tables; # 查看所有表
我們是不是能看到有一個courses_course表呀,然后輸入命令行desc courses_course;
IntegerField
:整型字段;
CharField
:字符型字段,該字段類型有一個必需參數:max_length 在數據庫水平限定了字符串最大長度;
ImageField
:圖像字段,能自動驗證上傳的對象是否為合法的圖像;
FloatField
:浮點字段;
AutoField
:根據已有id自增長的整型唯字段,一般每個model類不需設置該字段,因為django會為每個model自動設置;
以上就是Django 中怎么建立Model模型,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。