到目前为止,我们开发的所有功能都是匿名访问的,这显然不够安全。通常我们会要求注册的用户通过用户名和密码登录,只有登录后的用户才可以管理产品。套用专业的说法就是:第一步是认证,验证用户是否是他所宣称的那个人;第二步是授权,验证用户是否拥有执行某种操作的权限。

Django已经提供了一个django.contrib.auth应用来处理登录、登出和权限验证,同时还提供了django.contrib.admin应用可以进行用户管理(admin应用还有很多其他的功能)。所以我们只需要将这些app插入到我们的站点,就可以实现登录和用户管理的大部分功能。

本节先介绍如何进行用户管理。

我们前面已经介绍过在Django中使用session,方法是打开'django.contrib.sessions'应用。该app是django.contrib.auth的基础,同时从该节我们也知道了如何在Django中加入应用,所以让我们快速行动起来:

首先在depot/settings.py中,打开MIDDLEWARE_CLASSES中的CommonMiddleware、SessionMiddleware和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',
)

同样在在depot/settings.py中,打开INSTALLED_APPS中的auth、contenttypes、sessions和admin应用:

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','depot.depotapp','django-groundwork','djangorestframework',
)

在depot/urls.py中,在头部增加:

from django.contrib import admin
admin.autodiscover()

然后增加admin的urlpattern:

(r'^admin/', include(admin.site.urls)),

最后运行$python manage.py syncdb,以创建需要的数据库表。在此过程中会询问你创建一个管理员账号。如果没有创建,也可以手工运行$python manage.py createsuperuser再次创建:

$ python manage.py createsuperuser
Username (Leave blank to use 'holbrook'):
E-mail address: a@b.com
Password:
Password (again):
Superuser created successfully.
holbrook-wongdemacbook-pro:depot holbrook$ python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'holbrook'):
E-mail address: wanghaikuo@gmail.com
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
No fixtures found.

此时访问http://localhost:8000/admin/,用刚才创建的用户名和密码登录,就可以看到Django内置的管理界面,其中就有用户管理的功能。如果你对英文界面很不爽,只需要在depot/settings.py中设置LANGUAGE_CODE = 'zh-CN',就可以看到中文的管理界面了。

你可以创建几个用户,在下一节中会用到。

Django实战(21):使用内置的Amin管理用户相关推荐

  1. 【Youtobe trydjango】Django2.2教程和React实战系列三【Django超级管理员和内置内容】

    [Youtobe trydjango]Django2.2教程和React实战系列三[Django超级管理员和内置内容] 1. Django数据初始化及超级管理员 2. 用户模块使用 1. Django ...

  2. 微信定位当前城市 php,html5,javascript_微信内置浏览器如何定位用户所在城市,html5,javascript - phpStudy...

    微信内置浏览器如何定位用户所在城市 我的代码这样写的,但是有个问题,在wifi网络下可以正确定位(杭州),但是把网络切换到移动网络比喻4G网络就不准确了,我在杭州,但是定位显示温州. $(functi ...

  3. dmv io读写高的sql_使用内置的动态管理视图(DMV)发现更多SQL Server信息

    dmv io读写高的sql 介绍 (Introduction) This is the second article in a continuing series on the many system ...

  4. linux的内置的账户_Linux用户和用户配置文件(注意nobody用户)

    除了像Windows系统一样新建用户帐户外,在Linux系统中同样有一些用户帐户是在系统安装后就有的,就像Windows系统中的内置帐户一样.它们是用来完成特定任务的,比如nobody和ftp等,我们 ...

  5. Django模板层:内置模板标签if,for in(forloop.counter)with,url,spaceless,autoescape,verbatim,firstof,block,cycle

    [注意]判断运算符==, !=等符号两边必须有空格,否则报错 from django.shortcuts import renderdef my_index(request):persons = [& ...

  6. 管理计算机域内置账户改为用户账户,“管理计算机(域)的内置帐户”我给它改了名...

    在Windows XP中,Administrator帐户是终极管理员,如果你创建了其他管理员帐户,那么该帐户就会从欢迎屏幕上被隐藏.这里需要注意的是,仅仅是从欢迎屏幕上被隐藏,该帐户仍然存在. 如果你 ...

  7. 使用RT-Thread Studio DIY 迷你桌面时钟(五)| 使用内置 Git 插件管理项目

    寻求更清爽的阅读体验,请移步:Mculover666的个人博客. 1. 项目进度 桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下: 在前四篇博文中简单 ...

  8. 微信开发者管理工具上线内测版,增加了内置的git管理和支持npm安装,6666666……

    做这个小程序项目起始都一直在用git命令行进行git版本管理,后来从后台同学那里安装了小乌龟,用了几天,起始发现和之前webstorm自带的VCS里面集成的git命令菜单差不多,都是将git命令行的操 ...

  9. 《Django实战系列》

    这个实战系列暂时就告一段落了,时间和能力的关系,有些地方写的不够清楚明白,代码也没有整理出来.未尽事宜将在以后逐步补全. 希望通过这个系列,你能够掌握使用Django开发一个web应用的基本过程.现在 ...

最新文章

  1. 【c语言】蓝桥杯入门训练 Fibonacci数列
  2. python爬虫实例-python 爬虫实例
  3. 在java中3.14156d表示_2006年9月计算机等级考试二级Java笔试真题
  4. java代码做repeat次运算,从键盘输入几个数,比最值
  5. Spring Boot文档阅读笔记-对Securing a Web Application解析
  6. [Java] Spring事务REQUIRES_NEW导致项目没有响应-原因DB maxActive没设置
  7. 【Java线程】深入理解Volatile关键字和使用
  8. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·005
  9. linuxpython源文件_Python3 源码安装(Linux 版)
  10. Python数据结构实战——哈希表中的冲突处理(Collision Handling In Hash Table)
  11. 用WPF+MongoDB开发房产信息收集器(3)——MongoDB入门
  12. cnnvd爬取漏洞信息
  13. 小爱同学服务器维修,小爱同学TTS服务(2019年5月29日更新可用版本)
  14. 怎样把英文pdf翻译成中文?
  15. [BZOJ4199][NOI2015]品酒大会(后缀数组+单调栈+ST表)
  16. python时间函数纳秒_python – 获取纳秒级精度的文件修改时间
  17. matlab冒号分号区别,matlab : 关于冒号 用法大全以及实例
  18. 抓包神器 Charles 使用教程详解
  19. 按需视觉识别:愿景和初步方案
  20. Sql Server插入随机数

热门文章

  1. Internal table 备忘
  2. POJ 1887 (DP)
  3. [原创]c# 加解密通用类
  4. C+++之begin(),end(),rend(),rbegin()
  5. Generalised Dice Overlap as a Deep Learning Loss Function for Highly Unbalanced Segmentations
  6. 使用CSDN的MarkDown编辑公式
  7. 离线在远程linux服务器配置vscode-python环境以及在容器中配置
  8. python解码和编码的区别_python基础小知识,is和==的区别,编码和解码
  9. 修改cas5成功html文件,手把手教Apereo CAS5.2.3 Server端 增量开发 自定义登录页,增加验证码,注册,修改密码等功能的方式...
  10. java mysql查询试题_2016年Java认证考试题