Django admin (七)

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文档

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

久醉绕心弦,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值