Django的管理员界面是框架内置的强大功能,基于Python开发,能够让开发者快速对数据库中的数据进行增删改查操作,无需手动编写后台管理页面的前端和逻辑代码。下面我们一步步实现完整的Django管理员界面。

环境准备与项目创建
首先确保已经安装了Python环境,推荐使用Python3.8及以上版本,然后通过pip安装Django:
# 安装Django pip install django # 创建Django项目 django-admin startproject admin_demo # 进入项目目录 cd admin_demo # 创建应用 python manage.py startapp blog
注册应用与配置数据库
打开项目目录下的settings.py文件,将新创建的blog应用添加到INSTALLED_APPS列表中:
# admin_demo/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 添加我们的应用
]
Django默认使用SQLite数据库,无需额外配置即可直接使用,执行以下命令生成数据库表:
python manage.py migrate
创建模型并注册到管理员界面
在blog应用的models.py中定义需要管理的数据模型,比如一个文章模型:
# blog/models.py
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200, verbose_name="文章标题")
content = models.TextField(verbose_name="文章内容")
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
is_published = models.BooleanField(default=False, verbose_name="是否发布")
def __str__(self):
return self.title
class Meta:
verbose_name = "文章"
verbose_name_plural = "文章"
定义好模型后,需要执行迁移命令生成对应的数据库表:
python manage.py makemigrations python manage.py migrate
接下来将模型注册到Django管理员界面,打开blog应用下的admin.py文件:
# blog/admin.py from django.contrib import admin from .models import Article # 基础注册方式 admin.site.register(Article)
创建管理员账号
要登录管理员界面,需要先创建超级管理员账号,执行以下命令并按照提示输入用户名、邮箱和密码:
python manage.py createsuperuser
启动项目并访问管理员界面
执行启动命令运行Django项目:
python manage.py runserver
打开浏览器访问http://127.0.0.1:8000/admin/,输入刚才创建的超级管理员账号密码即可登录,在界面中可以看到我们注册的文章模型,点击即可对文章数据进行增删改查操作。
自定义管理员界面显示
基础注册方式的功能比较简单,我们可以通过自定义ModelAdmin类来扩展管理员界面的功能,比如调整列表页显示字段、添加筛选器、搜索框等。
# blog/admin.py
from django.contrib import admin
from .models import Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
# 列表页显示的字段
list_display = ('title', 'create_time', 'is_published')
# 添加筛选器
list_filter = ('is_published',)
# 添加搜索框,搜索标题字段
search_fields = ('title',)
# 按创建时间降序排列
ordering = ('-create_time',)
# 编辑页显示的字段分组
fieldsets = (
('基本信息', {
'fields': ('title', 'content')
}),
('发布设置', {
'fields': ('is_published',)
}),
)
自定义管理员界面外观
如果需要修改管理员界面的标题、头部文字等,可以在项目的admin.py或者settings.py同级目录下的任意admin相关文件中添加以下配置:
# admin_demo/admin.py 或者 blog/admin.py from django.contrib import admin # 修改管理员界面站点标题 admin.site.site_title = "我的后台管理系统" # 修改管理员界面头部标题 admin.site.site_header = "博客后台管理" # 修改管理员界面索引页标题 admin.site.index_title = "数据管理首页"
权限控制
Django管理员界面自带权限系统,在创建普通管理员账号时,可以通过勾选权限来控制不同管理员可以操作的模型和动作。我们可以在admin.py中进一步自定义权限逻辑,比如限制普通管理员只能编辑自己创建的文章:
# blog/admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super().get_queryset(request)
# 如果是超级管理员,返回所有数据
if request.user.is_superuser:
return qs
# 普通管理员只能看到自己创建的文章
return qs.filter(author=request.user)
def save_model(self, request, obj, form, change):
if not change:
obj.author = request.user
super().save_model(request, obj, form, change)
admin.site.register(Article, ArticleAdmin)
以上就是在Python中实现Django管理员界面的完整流程,开发者可以根据实际需求进一步扩展自定义功能,满足不同场景的后台管理需求。
DjangoPythonadmin_interface修改时间:2026-07-16 00:30:13