django 模型层
模型层处于视图层和数据库之间,将python对象和数据库表之间转换,将表中的记录转换为对象的数据。
- 用于屏蔽不同数据库之间的差异
django数据库配置位于django_introduction文件夹下的setting.py文件中
# 是数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
修改django使用mysql数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'django_mysql', # 数据库名
'USER': 'root', # 账号
'PASSWORD': 'root', # 密码
'HOST': '127.0.0.1', # HOST
'POST': 3306, # 端口
}
}
定义模型
修改blog文件夹下的models.py文件
添加文章模型
from django.db import models
class Article(models.Model):
# 文章ID
article_id = models.AutoField(primary_key=True)
# 文章标题
title = models.TextField()
# 文章摘要
brief_content = models.TextField()
# 文章内容
content = models.TextField()
# 文章发布日期
publish_date = models.DateTimeField(auto_now=True)
生成模型迁移文件
python .\manage.py makemigrations
根据模型迁移文件执行数据库修改
python .\manage.py migrate
注册模型
注册模型可以在django后台管理页面(admin模块)看到操作这个表格,可以不注册
修改blog文件夹下的admin.py文件
from .models import Article
# 注册Article模型
admin.site.register(Article)
模型操作
from blog.models import Article
class test():
a = Article()
a.title = '测试'
a.brief_content = '测试djangoshell'
a.content = '测试django shell 2022/2/1'
# 保存模型到数据库
a.save()
# 查询该表的所有记录,结果是一个列表
articles = Article.objects.all()
修改预览模块中显示模型的数据
修改模型model中的模型,添加方法str方法
# Create your models here.
from django.db import models
class Article(models.Model):
# 文章ID
article_id = models.AutoField(primary_key=True)
# 文章标题
title = models.TextField()
# 文章摘要
brief_content = models.TextField()
# 文章内容
content = models.TextField()
# 文章发布日期
publish_date = models.DateTimeField(auto_now=True)
def __str__(self):
# admin模块中预览数据显示的信息
return self.title
进入后台后显示模型数据列表时会默认显示str方法返回的属性
模型层数据类型
类型名称 | 类型 | 属性 |
---|---|---|
数字类型 | IntegerField | |
文本类型 | TextField | default=‘’:设置默认值 ; primary_key=True:设置为主键 |
日期类型 | DateTimeField | auto_now=True:默认值为当前日期 |
自曾ID | AutoField | primary_key=True:设置为主键 |
货币字段类型 | DecimalField | max_digits= 4: 数组最大位数;decimal_places= 2:小数最大位数 |