0
点赞
收藏
分享

微信扫一扫

【django】用户退出登录功能实现【13】

双井暮色 2022-04-25 阅读 49

1、前端逻辑

<div class="top-bar-right">

	<ul class="header-user-links">
          {% if user.username %}
              欢迎您! <span style="font-weight: bolder;">[ {{ user.username }} ]</span>
              &emsp;<a href="/logout/">退出登录</a>&nbsp;
              {% else %}
              <li>
                  <a href="/login/">登录</a>&nbsp;&nbsp;&nbsp;
                  <a href="/register/">注册</a>
              </li>
          {% endif %}
	</ul>
</div>

2、配置路由

主路由

from django.contrib import admin
from django.urls import path,re_path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('^',include('userapp.urls')),
    re_path('^',include(('newsapp.urls','newsapp'),namespace='newsapp'))
]

子路由

from django.urls import path,re_path
from . import views

urlpatterns=[
    re_path('^register/$',views.RegisterView.as_view()),
    re_path('^usernames/(?P<username>[a-zA-Z_]{5,8})/count/$',views.UsernameCount.as_view()),
    re_path('^logout/$',views.LogoutView.as_view())
]

3、定义视图

特别注意:退出功能,django自带的logout()函数帮我们实现了
源码实现的逻辑如下
在这里插入图片描述

from django.shortcuts import render
from django.views.generic.base import View
from . models import Users
from django.contrib.auth import login,logout
from django.shortcuts import redirect
from django.urls import reverse

class LogoutView(View):
    def get(self,request):
        '''
        用户退出登录功能
        :param request:
        :return:
        '''
        logout(request)
        return redirect(reverse('newsapp:index'))
举报

相关推荐

0 条评论