创建网站数据模型
Django中数据模型的介绍
在Django中,通过抽象化模型层(Models)来对数据的处理和操作提供支持,即使用模型层将原生的数据库封装起来,提供一个统一的接口供我们对数据库进行操作。我们就没不必写一些对数据库进行底层操作的SQL语句了。
Django中使用数据库
DATABASES={
‘default’:{
‘ENGINE’:’’,
‘NAME’:(BASE_DIR,’’),
}
}
在创建Django项目时,就已经默认使用了数据库sqlite3,这在文件中的DATABASES变量进行声明
DATABASES={
‘default’:{
‘ENGINE’:’’,
‘NAME’:’xxx’,
‘USER’:’xxx’,
‘PASSWORD’:’xxx’,
‘HOST’:’’,
‘PORT’:’3306’
}
}
使用默认的数据库
使用mysql的数据库
定义数据模型
from import models #每个数据模型都继承自对象
# 图书分类
class Cate():
name=(verbose_name="分类名称", max_length=20)
def __str__(self):
return
class Meta:
verbose_name="分类名称"
verbose_name_plural=verbose_name
1、定义”分类”数据模型Cate
在应用目录中的文件中定义数据模型
在 Django 中,每个数据模型都对应数据库中的⼀一张数据表,换⽽而⾔言之,⼀一个 Django 数据模型,就是⼀一个数
据库表
模型的每⼀一个属性,都对应于数据表的每⼀一个字段
4
定义数据模型
import time #在文件顶部增加该项
#以当前的时间戳作为上传文件的文件名的一部分,防止文件重名
def get_img_path(instance,filename):
str_current_time=str(()).replace(‘.’,‘’)
return ‘upload/{0}{1}’.format(str_current_time,filename)
# 图书
class Book():
name=(verbose_name=“图书名称”, max_length=30)
author=(verbose_name=“作者”, max_length=20)
price=(verbose_name=“价格”)
cate=(Cate,verbose_name=“分类”, on_delete=) #外键,级联删除
picture=(verbose_name=“图书封面”,upload_to=get_img_path,null=True) #图像字段,设置上传路径
def __str__(self):
return
class Meta:
verbose_name = "图书"
verbose_name_plural = verbose_name
2、定义”图书”数据模型Book
5
生成数据模型
python makemigrations book_info
python migrate
在windows命令行输入下列命令并执行
#检测数据模型的变化,生成迁移文件
#在数据库同步上述的迁移
#因为使用Book类的封面picture使用了ImageField字段需要安装Pillow图形库
pip install Pillow
#安装Pillow图形库
在 Django 中,每个数据模型都对应数据库中的⼀一张数据表,换⽽而⾔言之,⼀一个 Django 数据模型,就是⼀一个数
据库表
模型的每⼀一个属性,都对应于数据表的每⼀一个字段
6
谢谢
Django官方文档: