Django 第九章 Admin后台系统
程序员文章站
2022-06-02 16:14:14
...
Admin后台系统主要对网站的信息进行管理,如文字、图片、影音和其他日常使用的文件的发布、更新、删除等操作,也包括功能信息的统计和管理,如用户信息、订单信息和访客信息等。
文章目录
1.走进Admin
如果Admin后台系统以英文的形式显示,在项目settings中设置中间件MIDDLEWARE,将后台内容以中文形式显示。 ‘django.middleware.locale.LocaleMiddleware’ 添加的中间件是有先后顺序的。
'django.middleware.security.SecurityMiddleware',#内置的安全机制,保护用户与网站的通信安全
'django.contrib.sessions.middleware.SessionMiddleware',#会话Session功能
'django.middleware.locale.LocaleMiddleware'#国际化和本地化
'django.middleware.common.CommonMiddleware',#处理请求信息,规范化请求内容
'django.middleware.csrf.CsrfViewMiddleware',#开启CSRF功能
'django.contrib.auth.middleware.AuthenticationMiddleware',#开启内置的用户认证系统
'django.contrib.messages.middleware.MessageMiddleware',#开启内置的信息提示功能
'django.middleware.clickjacking.XFrameOptionsMiddleware',#防止恶意程序单击劫持
创建超级管理员的账号和密码
(base) E:\MyDjango>python manage.py createsuperuser
Username (leave blank to use 'emma'): admin
Email address:
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
from index.models import PersonInfo
@admin.register(PersonInfo)
class PersonInfoAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'age']
在ModelAdmin中定义了许多属性和方法,可以用于改变Admin后台页面的样式和布局,使得模型数据以特定的形式展示在Admin后台系统。
2.Admin首页设置
INDEX对不会开发的使用者无法理解含义,在项目初始化文件中修改
import os
from django.apps import AppConfig
#修改App在Admin后台显示的名称
#default_app_config的值来自apps.py的类名
default_app_config = 'index.IndexConfig'
#获得当前APP的命名
def get_current_app_name(file):
return os.path.split(os.path.dirname(__file__))[-1]
#重写 IndexConfig
class IndexConfig(AppConfig):
name = get_current_app_name(__file__)
verbose_name = '网站首页'
“人员信息s”是由模型属性Meta的verbose_name设置的,去掉代码如下:
class PersonInfo(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
age = models.IntegerField()
def __str__(self):
return self.name
class Meta:
verbose_name = '人员信息'
verbose_name_plural = '人员信息'
后台系统首页的设置包括:
- 项目应用的显示名称:在项目应用的__init.__py中设置变量default_app_config,该变量指向自定义的IndexConfig类,由IndexConfig类的verbose_name属性设置项目应用的显示名称。
- 模型的显示名称:在模型属性Meta中设置verbose_name和verbose_name_plural,两者的区别在于verbose_name是以复数形式表示的,若在模型中同时存在两个属性,则优先显示verbose_name_plural的值。
- 网页标题:在项目应用admin.py中设置Admin的site_title和site_header属性,如果项目有多个项目应用,只需要在某个项目应用的admin.py中设置一次即可。