前言
在django的框架設(shè)計(jì)中采用了mtv模型,即Model,template,viewer
Model相對(duì)于傳統(tǒng)的三層或者mvc框架來說就相當(dāng)對(duì)數(shù)據(jù)處理層,它主要負(fù)責(zé)與數(shù)據(jù)的交互,在使用django框架設(shè)計(jì)應(yīng)用系統(tǒng)時(shí),需要注意的是django默認(rèn)采用的是orm框架中的codefirst模型,也就是說開發(fā)人員只需要專注于代碼的編寫,而不需要過多的關(guān)注數(shù)據(jù)庫(kù)層面的東西,把開發(fā)人員從數(shù)據(jù)庫(kù)中解放出來
django會(huì)根據(jù)Model類生成一個(gè)數(shù)據(jù)庫(kù)鏡像文件,然后再使用該鏡像文件生成數(shù)據(jù)庫(kù),同時(shí)該文件將記錄與數(shù)據(jù)庫(kù)同步版本的變化,所以在使用django進(jìn)行開發(fā)時(shí)不要手工去修改數(shù)據(jù)庫(kù),這樣會(huì)造成django框架的版本記錄不正確,從而無法正確的同步數(shù)據(jù)模型與數(shù)據(jù)庫(kù)的內(nèi)容
django生成的鏡像文件內(nèi)容如下:
from __future__ import unicode_literalsfrom django.db import migrations, modelsclass Migration(migrations.Migration):dependencies = [('web', '0001_initial'),]operations = [migrations.AddField(model_name='userinfo',name='sex',field=models.BooleanField(default=True),preserve_default=False,),]以上內(nèi)容為生的一一個(gè)版本的鏡像,內(nèi)容記錄了對(duì)model所在的app的記錄,以及執(zhí)行的動(dòng)作,如上面的鏡像文件記錄為對(duì)web的app中的model增加了一個(gè)名稱為sex的字段,字段類型為Boolean,默認(rèn)為True。
要說一個(gè)項(xiàng)目最重要的部分是什么那鐵定數(shù)據(jù)了,也就是數(shù)據(jù)庫(kù),所以下面這篇就帶大家走進(jìn)django關(guān)于模型層model的使用,model主要就是操縱數(shù)據(jù)庫(kù)不使用sql語句的情況下完成數(shù)據(jù)庫(kù)的增刪改查。
本篇僅帶領(lǐng)大家進(jìn)行簡(jiǎn)單的建表、查詢和刪除,下面話不多說了,來一起看看詳細(xì)的介紹吧。
一、ORM
映射關(guān)系:
表名 <-------> 類名
字段 <-------> 屬性
表記錄 <------->類實(shí)例對(duì)象
二、創(chuàng)建表(建立模型)
1、創(chuàng)建表的代碼寫在項(xiàng)目下的models文件中
1)比如我們創(chuàng)建一個(gè)圖書表,建立如下:
from django.db import models# Create your models here.class Book(models.Model): nid = models.AutoField(primary_key=True) #AutoField有序整形 IntegerField整形 title = models.CharField(max_length=32) #CharField字符 author = models.CharField(max_length=32) publishDate = models.DateField() #DateField日期類型 price = models.DecimalField(max_digits=5, decimal_places=2) #DecimalField浮點(diǎn)型也可以用FloatField
類名就是表名,屬性就是字段。繼承django提供給我們的用于做轉(zhuǎn)換的models.Model才能將我們寫的類轉(zhuǎn)化為數(shù)據(jù)庫(kù)
定義好模型之后,你需要告訴Django 使用這些模型。你要做的就是修改配置文件。
2)字段常用參數(shù)
(1)null
新聞熱點(diǎn)
疑難解答
圖片精選