Django登陆状态保存以及退出登陆状态

Day 20/12/30

在这里插入图片描述

用户登陆状态保存

在登陆成功后使用session,将用户id写入到session中

request.session['user_id'] = user_obj.pk
request.session.set_expiry(60 * 60 * 24 * 14)  # 设置过期时间

使用中间件来做登陆状态的验证

from django.utils.deprecation import MiddlewareMixin
from web import models

class AuthMiddleware(MiddlewareMixin):

    def process_request(self, request):
        user_id = request.session.get('user_id', 0)
         # 通过session中保存的user_id查询到用户对象
        user_obj = models.User.objects.
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
使用 Django 和 Layui 实现登录退出的步骤如下: 1. 创建登录页面。使用 Layui 的表单组件和 Django 的模板引擎创建登录页面。 2. 创建登录视图。在 Django 中创建登录视图函数或者类视图,处理用户提交的登录信息,验证用户名和密码是否正确。 3. 实现登录功能。使用 Django 的登录模块,将用户信息保存在会话中,实现登录功能。 4. 创建退出视图。在 Django 中创建退出视图函数或者类视图,清除当前用户的会话信息,实现退出功能。 5. 实现退出功能。使用 Layui 的 js 功能,发送退出请求,清除本地缓存,跳转到登录页面。 下面是一个简单的示例代码: 1. 创建登录页面 login.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录页面</title> <link rel="stylesheet" href="{% static 'layui/css/layui.css' %}"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md6 layui-col-md-offset3"> <form class="layui-form" action="{% url 'login' %}" method="post"> {% csrf_token %} <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="login">登录</button> </div> </div> </form> </div> </div> </div> <script src="{% static 'layui/layui.js' %}"></script> <script> layui.use(['form'], function(){ var form = layui.form; }); </script> </body> </html> ``` 2. 创建登录视图 login.py ```python from django.contrib.auth import authenticate, login from django.shortcuts import render, redirect def login_view(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('home') else: return render(request, 'login.html', {'error': '用户名或密码错误'}) else: return render(request, 'login.html') ``` 3. 创建退出视图 logout.py ```python from django.contrib.auth import logout from django.shortcuts import redirect def logout_view(request): logout(request) return redirect('login') ``` 4. 配置 URLconf urls.py ```python from django.urls import path from .views import login_view, logout_view urlpatterns = [ path('login/', login_view, name='login'), path('logout/', logout_view, name='logout'), ] ``` 5. 在 Layui 中添加退出功能 ```html <dl class="layui-nav-child"> <dd><a href="#">个人信息</a></dd> <dd><a href="#">修改密码</a></dd> <hr> <dd><a href="{% url 'logout' %}">退出登录</a></dd> </dl> ``` 以上是使用 Django 和 Layui 实现登录退出的步骤。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天意不可违.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值