博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django实战(21):使用内置的Amin管理用户
阅读量:6200 次
发布时间:2019-06-21

本文共 2569 字,大约阅读时间需要 8 分钟。

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

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

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

我们前面已经介绍过,方法是打开'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 adminadmin.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',就可以看到中文的管理界面了。

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

转载地址:http://gvtca.baihongyu.com/

你可能感兴趣的文章
Servlet的会话(Session)跟踪
查看>>
放大你的格局,你的人生将不可思议
查看>>
IDA修改游戏
查看>>
递推3--位数问题
查看>>
《自控力》笔记
查看>>
redis主从配置及主从切换
查看>>
HackingTeam重磅炸弹: 估值超1000万美金带有军火交易性质的木马病毒以及远控源代码泄露...
查看>>
Flask的集中控制
查看>>
浅谈外连接中的on条件字句
查看>>
Google面试题-高楼扔鸡蛋问题
查看>>
Marching squares & Marching cubes
查看>>
关于在真实物理机器上用cloudermanger或ambari搭建大数据集群注意事项总结、经验和感悟心得(图文详解)...
查看>>
Android设置系统开机自己主动永不休眠
查看>>
MediaPlayer 状态机 API 详解 示例
查看>>
ECharts实例开发学习笔记二——时间轴
查看>>
C++再论单例模式
查看>>
C# 异步上传图片案例
查看>>
eclipse安装使用jetty
查看>>
eclipse中git的使用
查看>>
Linux日期时间显示输出
查看>>