[Django后台管理系统]激活Django自带的管理界面

来源:互联网 发布:速卖通辅助软件 编辑:程序博客网 时间:2024/04/20 20:20

        注:以下内容转载自 现代魔法学院 网站的 激活Django自带的管理界面 一文,仅供学习使用。

       对于大部分网站来说,后台是基础设施中非常重要的一部分,它可以让你添加,编辑和删除网站内容。一些常见的例子:你可以用这个界面发布博客,后台的网站管理者用它来润色读者提交的内容,你的客户用你给他们建立的界面工具更新新闻并发布在网站上,这些都是使用管理界面的例子。

       如果你开发过网站的后台,你会发现一个问题: 创建它太繁琐了。当你开发对公众的功能时,网页开发是有趣的,但是创建管理界面通常是千篇一律的。你必须认证用户,显示并管理表格,验证输入的有效性诸如此类。这很繁琐而且是重复劳动。

       还好在 Django,建立一个管理界面,是一个已经解决了的问题。下面来看看 Django 是怎么处理这些枯燥的,重复性的任务吧。只要短短的几行代码,它就会为你做这一切,一点也不会欠缺。

       这一篇是关于 Django 的自动管理界面。这个特性是这样起作用的:它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即工作。

       下面我们马上开始吧。

       django.contrib 包

       Django 自动管理工具是 django.contrib 的一部分。django.contrib 是一套庞大的功能集,它是 Django 基本代码的组成部分,Django 框架就是由众多包含附加组件(add-on)的基本代码构成的。你可以把 django.contrib 看作是可选的 Python 标准库或普遍模式的实际实现。它们与 Django 捆绑在一起,这样你在开发中就不用“重复发明轮子”了。

       管理工具是本书讲述 django.contrib 的第一个部分。从技术层面上讲,它被称作 django.contrib.admin。django.contrib 中其它可用的特性,如用户鉴别系统(django.contrib.auth)、支持匿名会话(django.contrib.sessioins)以及用户评注系统(django.contrib.comments)。

       在成为一个Django专家以前,你将会知道更多 django.contrib 的特性。目前,你只需要知道 Django 自带很多优秀的附加组件,它们都存在于 django.contrib 包里。

       激活管理界面

       Django 管理站点完全是可选择的,因为仅仅某些特殊类型的站点才需要这些功能。这意味着你需要在你的项目中花费几个步骤去激活它。

       1. settings 文件的修改

       将'django.contrib.admin'加入 settings.py 的 INSTALLED_APPS 配置中(INSTALLED_APPS 中的配置顺序是没有关系的,但是我们喜欢保持一定顺序以方便人来阅读)。

       保证 INSTALLED_APPS 中包含'django.contrib.auth','django.contrib.contenttypes'和'django.contrib.sessions',Django的管理工具需要这3个包。

INSTALLED_APPS = (    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.sites',    'django.contrib.messages',    'django.contrib.staticfiles',    # Uncomment the next line to enable the admin:    'django.contrib.admin',    # Uncomment the next line to enable admin documentation:    # 'django.contrib.admindocs',)

       确保 MIDDLEWARE_CLASSES 包含'django.middleware.common.CommonMiddleware' 、'django.contrib.sessions.middleware.SessionMiddleware' 和'django.contrib.auth.middleware.AuthenticationMiddleware' 。

MIDDLEWARE_CLASSES = (    'django.middleware.common.CommonMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    # Uncomment the next line for simple clickjacking protection:    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',)

        运行 python manage.py syncdb 。这一步将生成管理界面使用的额外数据库表。当你把'django.contrib.auth'加进 INSTALLED_APPS 后,第一次运行syncdb命令时, 系统会请你创建一个超级用户。如果你不这么做,你需要运行 python manage.py createsuperuser 来另外创建一个 admin 的用户帐号,否则你将不能登入 admin(提醒一句: 只有当 INSTALLED_APPS 包含'django.contrib.auth'时,python manage.py createsuperuser 这个命令才可用)。

       将 admin 访问配置在 URLconf(记住,在 urls.py 中)。默认情况下,命令 django-admin.py startproject 生成的文件 urls.py 是将 Django admin 的路径注释掉的,你所要做的就是取消注释。下面是样例:

from django.conf.urls.defaults import *from django.views.static import *from django.conf import settings# Uncomment the next two lines to enable the admin:from django.contrib import adminadmin.autodiscover()urlpatterns = patterns('',    # Examples:    #url(r'^$', 'PythonProject.views.home', name='home'),    #url(r'^PythonProject/', include('PythonProject.foo.urls')),    # Uncomment the admin/doc line below to enable admin documentation:    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),    # Uncomment the next line to enable the admin:    url(r'^admin/', include(admin.site.urls)),)

       当这一切都配置好后,现在你将发现 Django 管理工具可以运行了。启动开发服务器(如前:“python manage.py runserver”),然后在浏览器中访问:http://127.0.0.1:8000/admin/,


       OK,后台就这样激活成功。

0 0