Django项目中的Admin应用详解

所谓一个Django项目,可以理解为部署在一个Web服务器上的Django应用的集合。即,一个Django项目中包含多个Django应用。

打开Django项目的myproject/settings.py文件,可以看到变量INSTALLED_APPS的默认定义如下:

 

INSTALLED_APPS = [
    'django.contrib.admin',			站点管理系统
    'django.contrib.auth',			认证系统
    'django.contrib.contenttypes',		content types框架
    'django.contrib.sessions',			session框架
    'django.contrib.messages',			message框架
    'django.contrib.staticfiles',		静态文件管理框架
]	content types框架
    'django.contrib.sessions',			session框架
    'django.contrib.messages',			message框架
    'django.contrib.staticfiles',		静态文件管理框架
]

 

可以看到,一个Django项目中默认即包含多个Django应用。

事实上,这些Django应用是Django的contrib软件包提供的。为了简化基于Django框架的Web应用的开发,Django以插件的形式提供了大量成熟的辅助应用。

在我们执行django-admin startproject myproject命令,通过模板创建Django项目时,默认即开启了部分辅助应用。

这里,我们介绍Django项目中的Admin应用。由于Admin应用还依赖于auth, contenttypes, sessions和messages应用,所以这些应用默认也一同被开启。

 

在Admin应用的辅助下,Django的Web应用天然就是一个CMS,即对“管理员发布内容”与“公众浏览公共站点”有清晰的界限。

 

  • 只有管理员能够使用Django应用操作要发布的内容,这些发布的内容最终显示在“公共站点”。
  • Django为站点管理员和站点公众用户提供了统一的接口。
  • Django为站点管理员提供了专门的admin域,自动化了管理员对站点内容的操作。

 

在进入Admin应用之前,首先要将Django项目中的migrations持久化到数据库中。否则会提示如下错误:

 

You have 13 unapplied migration(s). 
Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.


关于Django的migrations机制,我们将在稍后详细介绍,这里你只需要知道其是一种在Django项目与数据库服务器之间的同步机制。

 

在Django项目路径下执行如下命令即可:

 

python manage.py migrate


1.创建管理员用户

 

python manage.py createsuperuser

输入Username:
输入Email address:
输入Password:
输入Password (again):

注意,密码至少8位数,还不能太常见。

2.启动Django开发服务器

python manage.py runserver


Django项目中的Admin应用详解_第1张图片

 

3.浏览器打开http://127.0.0.1:8000/admin/
Django项目中的Admin应用详解_第2张图片

 

 

输入Username:
输入Password:
 

4.在Django administration界面

Django项目中的Admin应用详解_第3张图片

默认看到如下内容:

  • AUTHENTICATION AND AUTHORIZATION
    • Groups
    • Users

5.修改myApp/admin.py,将myApp应用中定义的model类注册到Admin应用中

from django.contrib import admin
from models import MyNewModel
admin.site.register(MyNewModel)

6.Django开发服务器将自动加载更新,刷新浏览器

Django项目中的Admin应用详解_第4张图片

可以看到新注册到Admin应用中的myApp应用:

 

  • AUTHENTICATION AND AUTHORIZATION
  • Groups
  • Users
  • myApp

 

参考链接:

https://docs.djangoproject.com/en/1.11/intro/tutorial02/#introducing-the-django-admin

你可能感兴趣的:(Django,Python)