django自带的auth认证系统-创新互联

版本: python2.7

创新互联公司,专注为中小企业提供官网建设、营销型网站制作、响应式网站、展示型成都网站制作、成都网站设计等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。

django 1.8.16

project名称:site_test, app: study

目录结构:

-> site_test :tree
.
├── db.sqlite3
├── manage.py
├── site_test
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   ├── urls.pyc
│   ├── views.py
│   ├── views.pyc
│   ├── wsgi.py
│   └── wsgi.pyc
├── static
└── templates
    ├── index.html
    ├── login.html
    ├── registration
    │   └── login.html
    └── study

1、site_test/settings文件中

INSTALL_APPS中要包含django.contrib.authdjango.contrib.contenttypes。默认就有

django.contrib.contenttypes 是 auth 模块的用户权限处理部分依赖的应用


MIDDLEWARE_CLASSES中要包含:

  • SessionMiddleware :用户处理用户会话。

  • AuthenticationMiddleware: 绑定一个 User 对象到请求中。

默认就有这两个中间件

INSTALLED_APPS = (
    ##其他应用,
    'django.contrib.auth',
    'django.contrib.contenttypes',
   
)

MIDDLEWARE_CLASSES = (
    '其他中间件列表',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)

2、site_test/urls.py 文件


login, loginout是django自带的方法,需要从django.contrib.auth.views中导入才能使用

from django.conf.urls import include, url
from django.contrib import admin

import views

import django.contrib.auth.views as auth_views ##不要忘记导入这个

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),  
    url(r'^login/', auth_views.login),
    url(r'^logout/', auth_views.logout_then_login),
    url(r'^$', views.index),
]

自带的url有以下这些:


^login/$ [name='login']
^logout/$ [name='logout']
^password_change/$ [name='password_change']
^password_change/done/$ [name='password_change_done']
^password_reset/$ [name='password_reset']
^password_reset/done/$ [name='password_reset_done']
^reset/(?P[0-9A-Za-z_\-]+)/(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$ [name='password_reset_confirm']
^reset/done/$ [name='password_reset_complete']

3、site_test/views.py :

该文件定义了访问index页面的视图方法,该文件需要自己创建。加上login_required() 意思是在访问该页面之前需要登录

#coding:utf-8
from django.shortcuts import redirect,render

from django.contrib.auth.decorators import login_required

@login_required()
def index(request):
    return render(request, 'index.html')

login.html:


该文件位于templates/registration/login.html

注意:login.html不一定要位于registration目录下

如果您不想调用模板registration/login.html,您可以通过额外的参数将template_name参数传递给as_view你的URLconf中的方法。

 例如,下面URLconf中的行将使用myapp/login.html:

url(r'^accounts/login/$', auth_views.LoginView.as_view(template_name='myapp/login.html')),

login.html文件内容





    
    




    
    {% csrf_token %}
    用户名:
    
    密码:
    
    
    
    
  

  

4、settings.py中加 LOGIN_URL(未通过认证时跳转的认证页面) 和 LOGIN_REDIRECT_URL (登录成功后默认跳转的页面)


LOGIN_URL='/login'      ##登录页面的url

LOGIN_REDIRECT_URL='/' ##登陆后跳转的页面,即索引页面

5、index.html文件

html文件中要可以直接通过{{ user }}获取用户名





    
    


{{ user }}
退出

欢迎访问index页面


登录测试

django 自带的auth认证系统

注销后返回到登录页面

django 自带的auth认证系统

参考文档:http://python.usyiyi.cn/translate/django_182/topics/auth/default.html

http://blog.nsfocus.net/django-easy-steps-user-authentication/

https://www.zmrenwu.com/post/30/

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:django自带的auth认证系统-创新互联
转载源于:http://scyanting.com/article/dghhsc.html