0Pricing
Python Academy · 课时

Django 管理后台

使用管理站点管理数据

Django 管理后台 是 CoddyKit 上的免费 Python Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

内置管理后台

Django 自带功能强大的管理后台:这是一个自动生成的 Web 界面,用于管理数据。它是 Django 最受欢迎的功能之一。

# The admin gives you CRUD screens
# for your models with zero UI code
print('Django admin manages data out of the box')

管理后台已安装

管理后台位于 django.contrib.admin 中,默认已包含在 INSTALLED_APPS 里,并已连接到项目的 urls.py。

# mysite/urls.py
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]
print('admin/ is mapped to the admin site')

创建超级用户

要登录,您需要一个管理后台账户。使用 python manage.py createsuperuser 创建账户,然后按照提示操作。

# python manage.py createsuperuser
# Username: admin
# Email: admin@example.com
# Password: ********
print('createsuperuser makes an admin login')

登录

运行服务器并访问 /admin/。使用超级用户凭据登录即可进入控制面板。

# python manage.py runserver
# Open http://127.0.0.1:8000/admin/
print('Visit /admin/ and log in')

注册模型

在注册模型之前,它们不会出现在管理后台中。请在应用的 admin.py 中使用 admin.site.register() 完成注册。

# blog/admin.py
from django.contrib import admin
from .models import Post

admin.site.register(Post)
print('Post now appears in the admin')

管理数据

注册后,您会获得完整的增删改查页面:列出所有记录、添加新记录、编辑和删除记录,而且无需编写任何表单。

# In the admin you can:
# - view a list of all Posts
# - add a new Post
# - edit or delete existing ones
print('Full CRUD with no extra code')

使用 ModelAdmin 自定义

ModelAdmin 类可以自定义模型的显示方式。list_display 用于选择列表视图中显示的列。

from django.contrib import admin
from .models import Post

class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'created', 'published')

admin.site.register(Post, PostAdmin)
print('list_display picks the columns')

搜索和筛选

添加 search_fields 可提供搜索框,添加 list_filter 可提供侧边栏筛选器,以便浏览大型数据集。

from django.contrib import admin
from .models import Post

class PostAdmin(admin.ModelAdmin):
    search_fields = ('title',)
    list_filter = ('published',)

admin.site.register(Post, PostAdmin)
print('Search box and sidebar filters added')

register 装饰器

@admin.register() 装饰器是单独调用 admin.site.register() 的简洁替代方式。

from django.contrib import admin
from .models import Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title',)
print('@admin.register is the decorator form')

__str__ 的作用

在模型上定义 __str__,这样管理后台会显示易读的标签,而不是 “Post 对象 (1)”。

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    def __str__(self):
        return self.title
print('__str__ gives a readable admin label')

权限

管理后台会遵循用户权限。您可以创建权限受限的工作人员用户,这样就不必让所有人都拥有完整的超级用户访问权限。

# Staff users (is_staff=True) can access the admin
# Permissions control which models they can edit
print('Permissions limit admin access')

快速检查

测试您对管理后台的掌握情况。

总结

您使用 Django 管理后台管理了数据。

  • 管理后台是内置功能,映射到 /admin/
  • 使用 createsuperuser 创建账户
  • 在 admin.py 中注册模型,即可获得增删改查页面
  • ModelAdmin 可以自定义列、搜索和筛选器
  • 定义 __str__ 以显示易读的标签;权限可以限制访问

常见问题解答

「Django 管理后台」课时是免费的吗?

是的 — 「Django 管理后台」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「Django 管理后台」这节课中我会学到什么?

使用管理站点管理数据 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「Django 管理后台」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 项目与应用
  2. 模型与迁移
  3. 视图与 URL
  4. Django 管理后台
← 返回 Python Academy