Django笔记 —— Admin(Django站点管理界面)
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过。Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧~
本篇笔记(其实我的所有笔记都是),并不会过于详细的讲解。因此如果有大家看不明白的地方,欢迎在我正版博客下留言,有时间的时候我很愿意来这里与大家探讨问题。(当然,不能是简简单单就可以百度到的问题-.-)
我所选用的教材是《The Django Book 2.0》,本节是Admin部分,对应书中第六章。
------------------------------------------------------------------------------------------------------------------------------------------------
1、历史&管理界面(Admin)的用处
这里给大家讲讲书中提到的一个Django的小故事,以此来让大家了解管理界面的作用——
在Django最开始开发的新闻报道的行业应用中,有一个典型的在线自来水的水质专题报道应用,它的实现流程是这样的:
· 负责这个报道的记者和要处理数据的开发者碰头,提供一些数据给开发者。
· 开发者围绕这些数据设计模型然后配置一个管理界面给记者。
· 记者检查管理界面,尽早指出缺少或多余的字段。开发者来回地修改模块。
· 当模块认可后,记者就开始用管理界面输入数据。同时,程序员可以专注于开发公众访问视图和模板(有趣的部分)。
由此我们可以看到管理界面的第一个作用:供外行操作网站数据库。(你当然不能指望那些记者会使用MySQL或者Django去操作数据库-.-)
除了数据操作外,还有很多针对开发者的作用,例如:
· 检查模块:你定义好一些模块之后,在Admin中操作一下,可以查错。
· 管理外部数据:如果你搞到很多外部数据(用户输入、网络爬虫……),那么在Admin中检查和编辑这些数据,虽然功能并不是很强大,却是比较便捷的。
· 临时的数据管理程序:你可以开发个小站点自己用,通过Admin操作数据~
2、用户权限系统&管理界面(Admin)的定位
Admin有一套用户权限系统:
1. 每个用户都有用户名、密码、邮箱地址、真实姓名,以及使用Admin的权限定义。
2. 权限定义如下表
名称 | 解释 | 备注 | |
一组三个布尔(bool)标记 | 活动标志 |
标记用户是否激活 激活了才能登录 |
|
成员标志 |
标记用户是否可以登录Admin 用来区分公众用户和管理用户 |
用户系统是独立于Admin的 它不仅可应用于管理页面 也可以用于控制公众页面 因此要对两种用户作以区分 |
|
超级用户标志 |
有Admin中的一切权限 |
如果有了这个, 别的权限取值将全被忽略 |
|
针对每个模型的权限 | 创建许可 | 有了哪种许可,就可以做哪种操作 | |
编辑许可 | |||
删除许可 | |||
编辑用户和权限 | 编辑用户的权限 | 可以编辑用户的权限(包括自己) | 就相当于把他设为超级用户-.- |
3. 可以创建用户组,为组设定权限,从而组中所有用户都有同样的权限
在使用Admin时,一定要注意以下问题:
· 别把它做成公众数据访问接口
· 别让它有对数据进行复杂的排序和查询的功能
· 只能提供给可信任的管理员
3、django.contrib包 & 管理界面(Admin)
请大家打开你的django源代码,从中你会看到contrib文件夹,这个就是django.contrib包。
记得曾经见过一些前辈,学东西喜欢直接看源代码,看不懂再看文档。虽然我并不赞同(觉得这样效率低),但这的确可以说明,源代码几乎包含了所有你应当掌握的东西。
话扯远了,咱们说回来,这个django.contrib包里面有很多Django自带的附加组件。
本篇所讲的Admin就是这其中的管理界面(django.contrib.admin),而这里面还有很多功能,例如:
· 用户鉴别系统(django.contrib.auth)
· 支持匿名会话(django.contrib.sessions)
· 用户评注系统(django.contrib.comments)
· ……
这些我们将在第十六章详细讨论。
4、激活管理界面(Admin)
在Django中默认已经设置好了所有管理界面的内容,因此你只要:
1. 直接运行:python manage.py syncdb,过程中按照指示创建一个超级用户
1+. 如果上面过程中选择了no,没创建超级用户,那么你也可以单独运行:python manage.py createsuperuser,来创建一个超级用户
2. 运行服务器:python manage.py runserver
3. 打开管理界面:http://127.0.0.1:8000/admin/,用你刚才设置的超级用户登录
这样你便可以看到管理界面了。
注:如果你想了解使用管理界面具体需要哪些设置(就是Django默认设置好的那部分),请去《The Django Book 2.0》中看吧。
5、语言支持
Django的管理界面支持很多语言,让其用你的语言显示的方法如下:
1. 打开settings.py,找到MIDDLEWARE_CLASSES设置,在'django.contrib.sessions.middleware.SessionMiddleware'后面添加一项'django.middleware.locale.LocaleMiddleware'
2. 刷新管理界面
此时,如果你的语言可用,那么页面中很多内容都会被翻译好。
6、关于之前admin.py疑问的解答
在模型一讲中,我有一个疑问,admin.py到底是干什么的?
现在可以回答了,这是用来把咱们自己定义的模型加入admin界面的注册表。
以那一讲中的模型(Publisher、Author、Book)为例,只要在"./books/admin.py"文件中写入:
from django.contrib import admin
from five.books.models import Publisher, Author, Book admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)
如此一来,再打开admin界面,便会看到这几个模型并可以随意操作了。
7、提速声明
关于admin界面更多的内容,例如其幕后如何工作、各种方便的用法,书中有,这里不再赘述。
Django笔记,算上这篇才第六篇,但时间却已经过了一个学期。这是我第一次写这种长篇的笔记,我现在深深感到自己的懒惰、眼高手低,以及不知取舍。这种速度,无法接受。
因此,我后面的内容将真正写成“笔记”,而不是“教程”。笔记,应当是自己忘记了看看,可以回忆起来;而教程,则是应该把完全不会的人讲会。我没必要写一份教程,写笔记就可以了。
但毕竟是博客,我也希望大家来看,对大家有帮助。因此,在这里声明一下具体省略的内容:
1. 暂时用不到的内容(我是在学Django,还没开始使用。因此,学过多过全没有意义,应当先掌握基本,在实践中不断完善。)
2. 书中详细阐述的内容(这部分,实在没必要重写。要么就是写个简短的总结,要么就是干脆省略。)
3. 版本不符的内容(本书对应Django版本已经不是最新的了,因此这里只写我现在使用的较新版本的内容,老版本内容自行查书即可。)
4. 其余没必要的内容(文中一般都会声明省略了哪些内容,供读者参考。)
------------------------------------------------------------------------------------------------------------------------------------------------
至此,“Admin(Django站点管理界面)”一章笔记完成,下一章是交互性网站的支柱——“表单”。
Django笔记 —— Admin(Django站点管理界面)的更多相关文章
- 使用django的admin的后台管理界面
django的admin后台管理界面是方便我们对数据库操作的 是一个在浏览器显示的 图形化界面数据库操作 我们先在django中的admin中把我们需要在图形化界面中进行操作的表导入进去: 先把m ...
- 【django小练习之主机管理界面】
需求: 利用django,js,bootstrap等实现登录,主机管理等操作. 实现截图 登录界面 主机界面,添加及编辑 部门管理界面 代码实现 目录层级 settings.py "&quo ...
- [Django笔记] admin 深入学习
admin django 内置的管理后台,大部分时候可以通过对admin进行配置来提高开发效率. 数据列表展示 默认情况下显示一个models-objects的列表,如果model定义了 __str_ ...
- 1.django笔记之django基础
一.django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
- 吴裕雄--天生自然Django框架开发笔记:Django Admin 管理工具
Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: ...
- django站点管理
一.启动django站点管理功能 1.关于django.contrib包 包含了django自带的众多附加组件,主要包括: 1)管理工具: django.contrib.admin 2)用 ...
- Django后台管理界面
之前的几篇记录了模板视图.模型等页面展示的相关内容,这篇主要写一下后台admin管理界面的内容. 激活管理界面 Django管理站点完全是可选择的,之前我们是把这些功能给屏蔽掉了.记得上篇中Djang ...
- django学习-管理界面、视图
django管理界面 设计背景 为你的员工或客户生成一个用户添加,修改和删除内容的后台是一项缺乏创造性和乏味的工作.因此,django全自动地根据模型创建后台界面. django产生于一个公众页面和内 ...
- 4.django笔记之admin
作者:刘耀 QQ:22102107 django-Admin django amdin是django提供的一个后台管理页面,改管理页面提供完善的html和css,使得你在通过Model创建完数据库表之 ...
随机推荐
- 我和我的广告前端代码(四):后台系统中,初尝vue、vue-cli
有一段都在重构之前文章<我和我的广告前端代码(三):一次重来的机会,必要的技术选型>中提到的广告前台展示项目,原有的基于页面的请求,改成了单广告位请求在这个过程中经历了好几次架构变更以及项 ...
- py faster rcnn的lib编译出错问题
真是好事多磨啊,计算机系统依然是14.04,而cuda依然是8.0,唯一不同的是时间不一样,下载的各种库版本有差别,GPU的driver不一样. 但是这样就出问题了,py-faster rcnn的li ...
- GET&&POST请求编码过程
编码.解码 我们在开发过程中不可避免的一个话题就是编码和解码,那么什么是编码什么是解码呢?为什么要进行编码和解码呢?下面我们一一分析! 编码和解码的概念 编码是信息从一种形式或格式转换为另一种形式的过 ...
- Unity 游戏框架搭建 (十一) 简易AssetBundle打包工具(一)
最近在看Unity官方的AssetBundle(以下简称AB)的教程,也照着做了一遍,不过做出来的AssetBundleManager的API设计得有些不太习惯.目前想到了一个可行的解决方案.AB相关 ...
- CommonJs模块规范
1.什么是模块化 文件作用域 通信规则 加载 require 导出 exports 2.CommonJs模块规范 在Node中的Javascript还有一个很重要的概念:模块概念 模块作用域 使用re ...
- java 代码调用函数
sql 中调用函数 getDistance(lng1 float, lat1 float, lng2 float, lat2 float) 例如: SELECT id, f_seller_id sel ...
- javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)
在web中,实现三级联动很常见,尤其是利用jquery+json.但是从根本上来说jquery并不是最能让人容易理解的,接下来从最基本的javascript开始,实现由javascript+json+ ...
- python运算符及优先级顺序
python语言是一门脚本语言,支持面向对象.面向过程编程,兼具编译性和解释性的动态语言,整理出学习过程中一些基本Python运算符和运算符的优先级顺序. 一.算术运算符 运算符 描述 + 加 - 两 ...
- 使用DOM对表格进行增删
---恢复内容开始--- 声明本文旨在练习dom 其中可以链接数据 或者使用ajax 实现的我全用的dom因为我在学dom. 一. 表格构建 <section id="section_ ...
- JavaScript--文本框中只允许输入数字的操作(其他字符不显示)
在web网页中,尤其是某些提交表单操作,需要验证文本框输入内容,本文利用文本框键盘事件和事件对象,对文本框只允许输入数字方法进行总结. 1.键盘事件 keydown ---->键盘按下事件 ...