当前位置:  首页>> 技术小册>> Django快速开发实战

04 | 用2个命令创建一个包含用户管理功能的后台

在Django框架中,快速搭建一个包含用户管理功能的后台是项目开发的常见需求。用户管理不仅涉及用户注册、登录、注销等基本操作,还包括用户信息的查看、编辑、删除等高级功能。幸运的是,Django通过其强大的内置功能,特别是django.contrib.admin模块,使得这一过程变得异常简单。在本章中,我们将通过两个简单的命令,快速搭建一个包含完整用户管理功能的后台系统。

准备工作

在开始之前,请确保你已经安装了Django,并且创建了一个新的Django项目。如果你还没有这样做,可以按照以下步骤进行:

  1. 安装Django(如果你还没有安装的话):

    1. pip install django
  2. 创建新的Django项目

    1. django-admin startproject myproject
    2. cd myproject
  3. 创建一个应用(虽然对于使用django.contrib.admin来说不是必需的,但通常我们会为项目创建至少一个应用):

    1. python manage.py startapp myapp

    注意:虽然本章节主要聚焦于使用django.contrib.admin,但创建应用是一个好习惯,因为它允许你组织和管理项目的不同部分。

第一步:启用django.contrib.admin

Django的admin站点是一个功能强大的内容管理工具,它自动读取你的模型(models)并为你提供一个界面来添加、修改和删除数据库中的对象。为了使用它,你首先需要确保你的项目已经启用了django.contrib.admin

  1. 编辑settings.py文件
    在项目的settings.py文件中,找到INSTALLED_APPS列表,并确保django.contrib.admindjango.contrib.auth(用户认证系统)、django.contrib.contenttypes(内容类型框架,用于权限和通用关系)和django.contrib.sessions(会话框架)都被包含在内。这些应用是django.contrib.admin正常工作的基础。

    1. INSTALLED_APPS = [
    2. ...
    3. 'django.contrib.admin',
    4. 'django.contrib.auth',
    5. 'django.contrib.contenttypes',
    6. 'django.contrib.sessions',
    7. ...
    8. ]
  2. 配置数据库(如果尚未配置):
    django.contrib.admin需要数据库来存储用户信息和模型数据。确保你的settings.py文件中配置了数据库(通常是SQLite、PostgreSQL、MySQL等)。

    1. DATABASES = {
    2. 'default': {
    3. 'ENGINE': 'django.db.backends.sqlite3',
    4. 'NAME': BASE_DIR / 'db.sqlite3',
    5. }
    6. }

第二步:创建超级用户

在Django的admin站点中,你需要至少一个超级用户来登录并管理后台。使用Django的createsuperuser命令可以方便地创建这样的用户。

  1. 创建超级用户
    在项目根目录下(即包含manage.py的目录),运行以下命令:

    1. python manage.py createsuperuser

    按照提示输入用户名、电子邮件地址和密码。这个用户将拥有访问Django admin站点的所有权限。

第三步:注册模型到admin站点(虽然不是通过命令,但很重要)

虽然这一步不直接通过命令完成,但它是使你的模型在admin站点中可用的关键步骤。Django不会自动将你的模型显示在admin站点中;你需要显式地注册它们。

  1. 编辑admin.py文件
    在你的应用(比如myapp)目录下,找到或创建一个名为admin.py的文件。然后,使用admin.site.register()函数来注册你的模型。

    假设你有一个名为MyModel的模型,你可以这样注册它:

    1. from django.contrib import admin
    2. from .models import MyModel
    3. admin.site.register(MyModel)

    注意:如果你还没有定义任何模型,Django的User模型(来自django.contrib.auth)已经默认注册到了admin站点,因此你可以直接通过admin站点管理用户。

第四步:运行开发服务器并访问admin站点

现在,一切准备就绪,你可以启动Django的开发服务器,并通过浏览器访问admin站点来查看和管理用户。

  1. 运行开发服务器
    在项目根目录下,运行以下命令来启动开发服务器:

    1. python manage.py runserver
  2. 访问admin站点
    打开浏览器,访问http://127.0.0.1:8000/admin/。使用你之前创建的超级用户凭据登录。

    登录后,你将看到Django admin站点的仪表盘,其中列出了所有已注册的模型(包括用户模型)。你可以通过点击“用户”或“认证和授权”下的“用户”来管理用户,包括查看、编辑、添加和删除用户。

总结

通过简单的两个命令(django-admin startprojectpython manage.py createsuperuser,虽然注册模型到admin站点不是通过命令完成的,但它是流程中的关键一步),我们成功搭建了一个包含完整用户管理功能的Django后台。Django的admin站点是一个强大的工具,它极大地简化了数据库管理和内容编辑的工作。随着项目的深入,你还可以自定义admin站点的界面和行为,以满足更具体的需求。


该分类下的相关小册推荐: