管理界面是基础设施中非常重要的一部分。这是以网页和有限的可信任管理者为基础的界面,它可以让你添加,编辑和删除网站内容。Django有自己的自动管理界面。这个特性是这样起作用的:它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即工作。
Django的管理员模块是Django的标准库django.contrib的一部分。这个包还包括其它一些实用的模块:
django.contrib.auth
django.contrib.sessions
django.contrib.comments
我们分几个部分讲解django的管理界面(admin)的使用。
配置
其实admin的配置并不需要我们过多操心,在django创建项目和app的时候都会为我们自动创建,如果你不需要可以将其注释掉。如果要使用admin那么你需要检查以下几个点:
1.在INSTALLED_APPS设置文件中有
'django.contrib.admin' 'django.contrib.auth', 'django.contrib.contenttypes' 'django.contrib.sessions'
因为admin模块依赖
2.在MIDDLEWARE_CLASSES属性中有
'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware' 'django.contrib.auth.middleware.AuthenticationMiddleware'.
也是因为依赖
3.运行pythonmanage.pymakemigrations和pythonmanage.pymigrate,用于创建为admin等模块创建新的数据库表。
因为apps中有auth模块,会要求你创建一个超级用户。所以在此之前你可以使用pythonmanage.pycreatesuperuser命令创建一个超级用户。这个非常简单,根据提示输入就可以。
4.在urls.py中设置admin映射,这个一般也是系统为我们自动添加的。
from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', #... (r'^admin/', include(admin.site.urls)), #... )
完成以上步骤后,运行runserver你就可以通过/admin/这个url获取admin界面了。只不过这时候的admin界面除了用户和用户组之外没有其他的内容
admin.py文件
在每个app下系统会自动创建admin.py文件。这个文件的编写直接影响到admin界面的显示内容。
1.对model类进行注册
2.
from django.contrib import admin from mysite.books.models import Publisher,Author, Book admin.site.register(Publisher) admin.site.register(Author) admin.site.register(Book)
这是最基本的数据添加功能。当你在project文件夹中添加新的文件时,需要重启server才能生效。这样就会看到admin主界面中有了你定义的数据模型。此外如果想要你的admin界面中的添加数据功能生效,需要确保MIDDLEWARE_CLASSES中有'django.contrib.messages.middleware.MessageMiddleware'。这样我们就能够在admin界面很容易的操作数据库内容了,系统会自动同步到数据库。
自定义admin模块的显示
通过上面的设置虽然我们有了一个可以基本满足需求的admin界面,但是显示比较单一。基本显示内容的设置应该在models文件中。例如:
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email =models.EmailField(blank=True)
只需要在字段声明中,设置blank=True,默认是False,就可以让email为空。
属性Field函数中的verbose_name可以控制这个字段在admin中以什么样的名字显示
Meta内部类中的verbose_name可以给模型起一个更可读的名字,ordering可以决定数据以什么排列方式显示。
__unicode__的返回值可以决定表在admin中以什么名字显示。
权限管理
因为你是用超级用户登录的,你可以创建,编辑和删除任何对像。然而,不同的环境要求有不同的权限,系统不允许所有人都是超级用户。管理工具有一个用户权限系统,通过它你可以根据用户的需要来指定他们的权限,从而达到部分访问系统的目的。
用户帐号应该是通用的、独立于管理界面以外仍可以使用。但我们现在把它看作是管理界面的一部分。在第十四章,我们将讲述如何把用户帐号与你的网站(不仅仅是管理工具)集成在一起。
你通过管理界面编辑用户及其许可就像你编辑别的对象一样。我们在本章的前面,浏览用户和用户组区域的时候已经见过这些了。如你所想,用户对象有标准的用户名、密码、邮箱地址和真实姓名,同时它还有关于使用管理界面的权限定义。首先,这有一组三个布尔型标记:
活动标志,它用来控制用户是否已经激活。如果一个用户帐号的这个标记是关闭状态,而用户又尝试用它登录时,即使密码正确,他也无法登录系统。
成员标志,它用来控制这个用户是否可以登录管理界面,由于用户系统可以被用于控制公众页面,这个标志可用来区分公众用户和管理用户。
超级用户标志,它赋予用户在管理界面中添加、修改和删除任何项目的权限。如果一个用户帐号有这个标志,那么所有权限设置(即使没有)都会被忽略。
普通的活跃,非超级用户的管理用户可以根据一套设定好的许可进入。管理界面中每种可编辑的对象(如:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。给一个用户授权许可也就表明该用户可以进行许可描述的操作。
当你创建一个用户时,它没有任何权限,该有什么权限是由你决定的。例如,你可以给一个用户添加和修改publishers的权限,而不给他删除的权限。请注意,这些权限是定义在模块级别上,而不是对象级别上的。据个例子,你可以让小强修改任何图书,但是不能让他仅修改由机械工业出版社出版的图书。
权限管理系统也控制编辑用户和权限。如果你给某人编辑用户的权限,他可以编辑自己的权限,这种能力可能不是你希望的。赋予一个用户修改用户的权限,本质上说就是把他变成一个超级用户。
你也可以给组中分配用户。一个组简化了给组中所有成员应用一套许可的动作。组在给大量用户特定权限的时候很有用。
总结
以上就是本文关于django站点管理详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
对于某一类网站, 管理界面 是基础设施中非常重要的一部分。这是以网页和有限的可信任管理者为基础的界面,它可以让你添加,编辑和删除网站内容。你可以用这个界面发布博客,后台的网 站管理者用它来润色读者提交的内容,你的客户用你给他们建立的界面工具更新新闻并发布在网站上,这些都是使用管理界面的例子。 但是管理界面有一问题:创建它太繁琐。当你开发对公众的功能时,网页开发是有趣的,但是创建管理界面通常是千篇一
对于某一类网站, 管理界面 是基础设施中非常重要的一部分。 这是以网页和有限的可信任管理者为基础的界面,它可以让你添加,编辑和删除网站内容。 一些常见的例子: 你可以用这个界面发布博客,后台的网站管理者用它来润色读者提交的内容,你的客户用你给他们建立的界面工具更新新闻并发布在网站上,这些都是使用管理界面的例子。 但是管理界面有一问题: 创建它太繁琐。 当你开发对公众的功能时,网页开发是有趣的,但是
Django 最强大的部分之一是自动生成的Admin 界面。它读取模型中的元数据来提供一个强大的、生产环境就绪的界面,使内容提供者能立即用它向站点中添加内容。在这篇文档中,我们讨论如何去激活、使用和自定义Django 的Admin 界面。 概述 通过使用startproject 创建的默认项目模版中,Admin 已启用。 下面的一些要求作为参考: 添加 'django.contrib.admin'
一、简介 V9引入门户级站群功能,所以此处的站点管理与系统站群系统紧密结合。以下资料介绍了站群和站点管理的相关知识。 *什么是站群? 所谓站群,是指建立在统一标准、统一技术构架基础之上,分级管理,分级维护,耦合程度低,信息可以实现基于特定权限共享呈送的网站集合。并不是把很多个网站集中在一起就可以称得上是站群了,一定是要:统一,分级管理,信息共享,单点登录才可以。站群实现了技术标准统一,能够互联互通
1. 创建站点 一般情况下,您需要在百度统计中创建站点才能获取跟踪代码及查看网站数据。 具体创建步骤: 登录百度统计,选择“管理->网站列表”标签; 点击页面右上方“新增网站”按钮,弹出新建对话框: 输入网站域名,域名格式不正确,将无法创建。 可输入如下4种域名形式: 主域名(如:www.baidu.com) 二级域名(如:sub.baidu.com) 子目录(如:www.baidu.com/su
Drupal 是一个内容管理系统,它通过插拔组装一系列罐装的模块让你快速构建网站, 它使用户创建和编辑自己的内容变的相对容易。 Drupal 特别适合使用 Puppet 来管理,因为有一个强大的命令行工具 drush, 你可以使用这个工具安装、管理 Drupal 站点。 如果我们将自动化管理 Drupal 站点的 drush 工具与我们已经创建的用于管理 MySQL 数据库和 Apache 虚拟主