浏览之前,请先阅读以下文章
1.Django项目创建
2.Django路由系统
在项目目录下的urls.py文件中,我们会看到这样一个url的配置
启动服务,在浏览器中输入网址http://127.0.0.1:8000/admin/
,结果如下
Django提供了一个非常强大的管理后台,只需要几行命令就可以生成一个后台管理系统
按下<Ctrl + C>组合键关闭服务,我们在终端执行以下命令来创建一个管理员账号
python manage.py migrate
# 按照提示输入账户和密码,密码强度符合一定的规则要求
python manage.py createsuperuser
效果如下图所示
创建完成后,重新启动服务器,在浏览器中访问网址https://127.0.0.1:8000/admin/,即可访问Django提供的项目后台登录页
使用刚刚创建的用户名和密码进行登录,即可看到后台的管理界面
提示Tips: 管理界面不是为网站的访问者准备的,而是为管理者准备的
自定义管理页面
在article/model.py文件中定义好数据模型
from django.db import models # 引入django.db.models模块
class User(models.Model):
"""
User模型类,数据模型应该继承于models.Model或其子类
"""
id = models.IntegerField(primary_key=True) # 主键
username = models.CharField(max_length=30) # 用户名,字符串类型
email = models.CharField(max_length=30) # 邮箱,字符串类型
class Article(models.Model):
"""
Article模型类,数据模型应该继承于models.Model或其子类
"""
id = models.IntegerField(primary_key=True) # 主键
title = models.CharField(max_length=120) # 标题,字符串类型
content = models.TextField() # 内容,文本类型
publish_date = models.DateTimeField() # 出版时间,日期时间类型
user = models.ForeignKey(User, on_delete=models.CASCADE) # 设置外键
修改article/admin.py配置文件,在admin.py文件中,创建UserAdmin和ArticleAdmin后台控制模型类,全部继承admin.ModelAdmin类,并设置属性,最后将数据模型绑定到管理后台
from django.contrib import admin
from .models import User, Article
class UserAdmin(admin.ModelAdmin):
"""
创建UserAdmin类,继承于admin.ModelAdmin
"""
# 配置展示列表,在User板块下的列表展示
list_display = ('username', 'email')
# 配置过滤查询字段,在User板块下的右侧右侧过滤框
list_filter = ('username', 'email')
# 配置可以搜索的字段,在User板块下的右侧搜索框
search_fields = (['username', 'email'])
class ArticleAdmin(admin.ModelAdmin):
"""
创建ArticleAdmin类,继承于admin.ModelAdmin
"""
# 配置展示列表,在Article板块下的列表展示
list_display = ('title', 'content', 'publish_date')
# 配置过滤查询字段,在Article板块下的右侧右侧过滤框
list_filter = ('title',)
# 配置可以搜索的字段,在Article板块下的右侧搜索框
search_fields = ('title',)
# 绑定User模型到UserAdmin管理后台
admin.site.register(User, UserAdmin)
# 绑定Article模型到ArticleAdmin管理后台
admin.site.register(Article, ArticleAdmin)
提示Tips
① 在admin.py这个文件中注册需要在后台管理页面显示的模型,如果不注册就不会显示
② Django提供了admin.ModelAdmin类,通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式
③ 设置属性list_filter, search_fields可以是列表或元组
④ 调用admin.site.register方法进行注册
配置完成后,启动开发服务器,在浏览器中再次输入网址https://127.0.0.1:8000/admin/,将会在后台面板中新增一个ARTICLE类管理,下面有Articles和Users 2个模型
我们选中一个模型,就可以实现对模型的增删改查等相应的操作。例如,单击"Articles"模型右侧的【添加】按钮,即可执行新增文章信息的操作
提示Tips:单击"Articles"模型右侧的【添加】按钮后,如果无法弹出上述页面,出现类似以下这种django.db.utils.OperationalError: no such table: article_user的错误,我们需要在终端执行以下两段命令即可解决无法加载增加article页面的情况
python manage.py makemigrations
python manage.py migrate
我们新增下述article信息,结果如下图所示