橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。
十二、Django 模型与管理页面
12.1 模型创建
在上篇博客中创建了 Django 给我们内置好的模型,这些是远远不够的,实现一个应用还需要具备自己的模型。
在 Django 中 model 可以理解成就是数据库中的表。
打分系统 客户模型
,小姐姐打分模型
。
客户模型包含字段如下
- 客户 ID
- 客户名
- 客户手机号
分数模型
- 自增主键
- 客户 ID(上表外键)
- 分数
- 小姐姐 ID(登录者 ID,User 表外键)
修改 models.py
文件代码,添加 Customer
类与 Score
类。
from django.db import models
# 导入 User 类
from django.contrib.auth.models import User
class Customer(models.Model):
# 自增主键
_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20, verbose_name="客户名")
mobile = models.IntegerField(default=0, verbose_name="手机号码")
class Score(models.Model):
# 自增主键
_id = models.AutoField(primary_key=True)
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
score = models.IntegerField(default=0, verbose_name="分数")
# 使用 User 类作为登录用户的外键
user_id = models.ForeignKey(User, on_delete=models.CASCADE)
完成模型代码编写,在激活模型前,还需要进行一下应用的配置,因为 migrate
命令需要在 settings.py
文件中的 INSTALLED_APPS
中检索当前项目涉及的数据表,所以需要将 scoring
应用添加到该列表中。
这里需要补充一个知识,后续打分系统的配置文件都在 scoring/apps.py
文件中,所以在 INSTALLED_APPS
中添加下述代码即可。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'scoring.apps.ScoringConfig'
]
准备工作完成,运行 python manage.py makemigrations scoring
命令,该命令去检索模型文件的修改,对修改部分会成圣一个迁移文件。在通过 python manage.py migrate
将模型的更改同步到数据库表结构之上,完成模型与数据库之间的数据一致性。
12.2 创建管理页面与添加打分系统应用
模型准备完毕之后,下面就要解决数据添加的问题,首先实现打分应用的后台功能。
创建超级管理员
python manage.py createsuperuser
创建之后运行系统,即可登录到后台管理页面。访问地址是 http://127.0.0.1:8000/admin
。
登录之后默认的管理界面如下所示,此时还没有 scoring
应用存在。
打开 scoring/admin.py
文件,修改其中的代码为下述内容:
from django.contrib import admin
from .models import Customer
admin.site.register(Customer)
编写完毕保存文件,刷新浏览器,即可发现页面中新增加了一个应用。
点击右侧的 add 按钮,可以对数据进行添加与维护,暂时忽略其他内容,小姐姐打分系统的第二天已经顺利度过了。
12.3 本篇博客小节
本篇我们再次对打分系统中的模型与后台管理界面进行了复习与迭代学习,希望这一小节对你有所帮助。
今天是持续写作的第 130 / 200 天。
博主 ID:梦想橡皮擦,希望大家点赞、评论、收藏。