• Django实战(21):使用内置的Amin管理用户


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

    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',就可以看到中文的管理界面了。

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

  • 相关阅读:
    C#面向对象
    CSS样式表---------第三章:样式属性
    CSS样式表-------第二章:选择器
    CSS样式表------第一章:样式表的基本概念
    解决Web部署 svg/woff/woff2字体 404错误
    sql server 2012 如何收缩事务日志
    input file类型,文件类型的限制
    C#对XML、JSON等格式的解析
    SQL实现表名更改,列名更改,约束更改
    sql 坐标距离排序计算距离(转)
  • 原文地址:https://www.cnblogs.com/wuxl360/p/5787951.html
Copyright © 2020-2023  润新知