• 【Django】登录后回到之前的页面


    在任意页面点击登录,登录成功后,跳转到之前点击登录的那个页面

    1. 用户在A.html页面点击登录
    2. 用户到登录页面login.html
    3. 用户输入信息登录成功
    4. 自动跳转回到A.html
    

    1. 所有的登录链接路径:{% url 'login' %}?next={{ request.path }}

      <a href="{% url 'login' %}?next={{ request.path }}">登录</a>
      <!-- request.path: 当前页面的url -->
      

      GET路径为:.../login/?next=当前url/

    2. login视图函数获取next的值:next=request.GET.get('next','/')
      在返回的login页面的登录表单中添加:<input type="hidden" name="next" value="{{ next }}">

    3. 将登录表单的值包括$('input[name="next"]')的值提交到视图函数,视图函数获取next值进行下一步跳转。


    /views.py

    def login(request):
    	if request.method == "POST":
    		ret = {
    			'status': None,
    			'msg': '',
    		}
    
    		username = request.POST.get("username")
    		password = request.POST.get("password")
    		next = request.POST.get('next')
    
    		if geetest_auth.geetest_auth(request):
    			user = auth.authenticate(username=username, password=password)
    			if user:
    				auth.login(request, user)
    				ret["msg"] = next
    			else:
    				ret["status"] = 1
    				ret["msg"] = "用户名或密码错误!"
    
    		return JsonResponse(ret)
    
    	elif request.method == "GET":
    		next = request.GET.get('next', '/')
    		return render(request, "login.html", {'next': next})
    
    
  • 相关阅读:
    thunkify 模块
    koa框架异步返回值的操作(co,koa-compose)
    ES6 基础版迭代器
    静态类在线程中的共享问题
    AWS远程登录
    系统状体检测命令
    常用系统命令
    文本文件查看命令
    vim
    查看md5
  • 原文地址:https://www.cnblogs.com/q1ang/p/10060822.html
Copyright © 2020-2023  润新知