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',
'POST': 3306,
}
}
定义模型
修改blog文件夹下的models.py文件
添加文章模型
from django.db import models
class Article(models.Model):
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
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方法
from django.db import models
class Article(models.Model):
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):
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:小数最大位数 |
|