Django 实现登录后跳转 您所在的位置:网站首页 网页登陆无法跳转 Django 实现登录后跳转

Django 实现登录后跳转

2023-08-29 11:40| 来源: 网络整理| 查看: 265

Django 实现登录后跳转 说明

实现网页登录后跳转应该分为两类:即登录成功后跳转和登录失败再次登录成功后跳转。参考网上内容,基本都只实现了第一类。而没有实现第二类。

实现

为了能让登录失败后再次登录成功后还能实现跳转。我这里采用了笨办法, 即:无论登录成功与否,都将跳转链接在前后端进行传递 ,这样跳转链接就不会在登录失败后消失。不多说,上代码

后端 views.py from django.shortcuts import render, redirect def login(request): # 当前端点击登录按钮时,提交数据到后端,进入该POST方法 if requesthod == "POST": # 获取用户名和密码 username = request.POST.get("username") passwd = request.POST.get("password") # 在前端传回时也将跳转链接传回来 next_url = request.POST.get("next_url") # 对用户进行验证,假设正确的用户名密码为"aaa", "123" if username == 'aaa' and passwd == '123': # 判断用户一开始是不是从login页面进入的 # 如果跳转链接不为空并且跳转页面不是登出页面,则登录成功后跳转,否则直接进入主页 if next_url and next_url != "/logout/": response = redirect(next_url) else: response = redirect("/index/") return response # 若用户名或密码失败,则将提示语与跳转链接继续传递到前端 else: error_msg = "用户名或密码不正确,请重新尝试" return render(request, "app/login.html", { 'login_error_msg': error_msg, 'next_url': next_url, }) # 若没有进入post方法,则说明是用户刚进入到登录页面。用户访问链接形如下面这样: # http://host:port/login/?next=/next_url/ # 拿到跳转链接 next_url = request.GET.get("next", '') # 直接将跳转链接也传递到前端 return render(request, "autotest/login.html", { 'next_url': next_url, })

前端页面 login.html

请使用xxx登录 // 注意这里多了一个input。它用来保存跳转链接,以便每次点击登录按钮时将跳转链接传递回后端 // 通过display:none属性将该input元素隐藏起来


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有