Django自带的admin,只需要简单配置即可完成一个功能强大的管理后端,基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查。
settings.py 文件默认配置如下:
INSTALLED_APPS = [
'django.contrib.admin', # 管理站点 依赖于下面几个模块
'django.contrib.auth', # 权限认证
'django.contrib.contenttypes', # 用于内容类型的框架
'django.contrib.sessions', # 会话框架
'django.contrib.messages', # 消息框架
'django.contrib.staticfiles', # 管理静态文件框架
]
其他相关配置都是默认生成的且有依赖关系:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
urls.py 文件根路由默认配置如下:
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),
]
此时通过访问admin站点会出现后台的登录页面:
创建管理员用户命令:
python manage.py createsuperuser
创建后登录站点首页如下:
之前操作数据库相关时已经创建好的表字段,此时想通过django来管理只需要在应用中的admin.py中导入models并注册即可:
models.py
from django.db import models
# Create your models here.
class Student(models.Model):
"""
学生表
"""
name = models.CharField('学生姓名', max_length=200, unique=True, help_text='学生姓名')
gender = models.SmallIntegerField('性别', default='1', help_text='性别')
hobby = models.CharField('爱好', max_length=200, null=True, blank=True, help_text='兴趣爱好')
age = models.IntegerField('年龄', null=True, )
create_time = models.DateTimeField('创建时间', auto_now_add=True, help_text='创建时间')
grade = models.ForeignKey('Grade', on_delete=models.SET_NULL, null=True, related_name='students') # 设置外键,级联删除)
class Meta:
"""
元数据,
"""
db_table = 'student' # 指定当前模型创建的表明,不写默认当前的模型名Student
verbose_name = '学生信息表' # 注释
verbose_name_plural = verbose_name # 指定为复数
admin.py文件编写如下:
from django.contrib import admin
from project2s.models import Student
# Register your models here.
admin.site.register(Student)
刷新页面,可以对项目数据进行增删改查等相关操作:
详情页自定义设置
此时项目详情展示如下:
而django可以简单配置来自定义管理页面的显示:
from django.contrib import admin
from project2s.models import Student
# Register your models here.
class ProjectAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'gender', 'age', 'hobby']
list_display_links = ['name'] # 指定超链接进入到学生详情的字段
list_filter = ['name'] # 设置过滤字段
search_fields = ['name', 'age'] # 设置字段的搜索框
list_per_page = 5 # 设置每页多少数据
admin.site.register(Student, ProjectAdmin) # 配置完需要将类注册
如下:
具体其他更详细配置请查询django文档