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 反馈 — 无需本地设置。