Django Model層是Django的數據模型層,每個Model類就是數據庫中的一張表;html
咱們須要注意下面幾點:mysql
model通常都是定義在不一樣的APP的models.py模塊文件中,能夠是一個,也能夠是多個;nginx
不一樣model之間能夠相互關聯,相似表直接的關聯;sql
APP中一旦定義了model,必須將此APP添加到settings文件中;數據庫
且必定要記得運行makemigrations檢查model更新和migrate同步數據模型在數據庫中建表(這兩個操做你們記得在哪裏操做嗎,以前的文章有寫,快捷鍵就是Alt+Ctrl+R);django
咱們一塊兒來看一下如何定義一個數據model模型,具體有哪些操做: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官方文檔:https://docs.djangoproject.com/en/2.1/ref/models/fields/