[Django] 后台管理系统

浏览之前,请先阅读以下文章

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提供的项目后台登录页

Django项目后台登录界面

使用刚刚创建的用户名和密码进行登录,即可看到后台的管理界面

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信息,结果如下图所示

猜你喜欢

转载自blog.csdn.net/Hudas/article/details/129762960