Django项目——注销

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/84844342

一 注销URL 

# -*- coding: utf-8 -*-

from django.conf.urls import url
# 导入views中login
from django.contrib.auth.views import login

from . import views

'''
1 第一个url解析
登录页面的 URL 模式与 URL http://localhost:8000/users/login/ 匹配。
这个 URL 中的单词 users 让 Django 在 users/urls.py 中查找,而单词login 让它将请求发送给 Django 默认视图 login
(注意,视图实参为 login ,而不是 views.login )。
鉴于我们没有编写自己的视图函数,我们传递了一个字典,告诉 Django去哪里查找我们将编写的模板。
这个模板包含在应用程序 users 而不是 learning_logs 中。
2 第二个url解析
注销 URL 模式,该模式与 URL http://locallwst:8000/users/logout/ 匹配。
URL 模式将请求发送给函数 logout_view() 。
这样给这个函数命名,旨在将其与我们将在其中调用的函数 logout() 区分开来
'''
urlpatterns = [
    # 登录页面.
    url(r'^login/$', login, {'template_name': 'users/login.html'},
        name='login'),
        
    # 注销.
    url(r'^logout/$', views.logout_view, name='logout'),
    
    # Registration page.
    url(r'^register/$', views.register, name='register'),
]

二 视图函数 logout_view

from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
# 从 django.contrib.auth 中导入了函数 logout()
from django.contrib.auth import login, logout, authenticate
from django.contrib.auth.forms import UserCreationForm

def logout_view(request):
    """ 注销用户 """
    # 调用了函数 logout() ,它要求将 request 对象作为实参。
    logout(request)
    # 我们重定向到主页
    return HttpResponseRedirect(reverse('learning_logs:index'))
三  链接到注销视图

三  链接到注销视图

<p>
  <a href="{% url 'learning_logs:index' %}">学习笔记</a> -
  <a href="{% url 'learning_logs:topics' %}">主题</a> -
  <!--在 Django 身份验证系统中,每个模板都可使用变量 user ,
  这个变量有一个 is_authenticated 属性:如果用户已登录,
  该属性将为 True ,否则为 False 。-->
  {% if user.is_authenticated %}
  <!--对于已通过身份验证的用户,还设置了属性 username ,
  我们使用这个属性来个性化问候语,让用户知道他已登录-->
    你好, {{ user.username }}.
  <!-- 使得仅当用户登录后才能看到它-->
    <a href="{% url 'users:logout' %}">退出</a>
  {% else %}
  <!--对于还未通过身份验证的用户,我们再显示一个到登录页面的链接-->
    <a href="{% url 'users:register' %}">注册</a> -
    <a href="{% url 'users:login' %}">登录</a>
  {% endif %}
</p>

四 测试

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/84844342