Django登陆以后重定向到请求登陆的页面

登陆和注销操作在网页编程上很常见,这两个操作经常需要在操作成功以后转入发出请求的页面。

比如用户正在浏览一篇文章,发现下载该文章的附件需要登录才能进行,这时候点击登陆链接转入登陆页面,输入用户名密码登陆成功以后,会自动转回原来的那篇文章所在的页面。(目前很多网站采用ajax方法弹出对话框登陆,效果更好一些)

怎么做呢?下面说的是django的实现,但是大多数的web framework都可以这么做。

注销操作
因为不需要单独的注销页面,相对简单,利用HTTP_REFERER,Django的注销页面这样写就行:

登录操作
登陆操作相对复杂,因为一般都有单独的登陆页面,如果登陆成功再取HTTP_REFERER就是登陆页面自己的url,而不是之前的那个页面。

可以利用django的session,在转入登陆的时候,用的是页面的get请求,这时候在session中记录HTTP_REFERER,用户输入用户名密码进行登陆的时候(Post请求),从session中取出即可:

最后的重定向,有时候需要用户感觉到被重定向回去了,就写个简单的页面告诉用户两秒以后跳转,然后改改相应的login代码就行:

Original: https://www.cnblogs.com/to-creat/p/7200596.html
Author: Wei_java
Title: Django登陆以后重定向到请求登陆的页面

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/537036/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pato-mqtt示例代码

    -*- coding: utf-8 -*- """ @author: Mr_zhang @software: PyCharm @file: publi…

    Java 2023年5月30日
    065
  • java的6种单例模式

    第一种:饿汉式:当第一次访问这个对象的时候就向没吃过饭一样,类进行全部加载进去缺点:太消耗内存,全部加载不一定都会使用,产生垃圾优点:没有加锁,速度快 第二种:懒汉式(线程不安全)…

    Java 2023年6月9日
    070
  • 如何解决java.sql.SQLException: Column ‘ XXX ‘ not found

    在我们编写代码时,可能会遇到这种报错,报错的意思是找不到列XXX(questionId). 出现这种报错的可能原因有三个: 1.数据库表里缺少XXX(questionId)这一列….

    Java 2023年6月8日
    088
  • Lambda表达式

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    072
  • 在阿里云安装【Node-RED】+pm开机自启动

    必要条件: 一个云服务器。可以按照个人习惯在阿里云或者腾讯云购买,阿里云有学生优惠。 使用终端工具登录主机,这里可以使用Windows自带的”powershell&#8…

    Java 2023年6月8日
    078
  • logback的使用

    一、logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。 常用处理java的日志组件:slf4…

    Java 2023年6月5日
    065
  • Mac 手动安装 bee工具

    前因:1、go升级到1.16以后,bee官网给的安装方法(go get XXX)不好使,需要指定version。2、指定 go get XXX@v2.0.0 可以下载,但是bee工…

    Java 2023年6月6日
    086
  • 停止、启动nginx以及在windows下使用dos命令停止占用的端口

    停止nginx程序 停止命令 nginx.exe -s stop 或 nginx.exe -s quit 区别:stop可以快速停止nginx,可能并不保存相关信息;quit是完整…

    Java 2023年6月9日
    072
  • 使用RabbitMQ实现延迟任务

    本文转自:https://www.cnblogs.com/haoxinyue/p/6613706.html 场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就…

    Java 2023年5月30日
    088
  • 电脑常见快捷键

    一、键盘功能键: Tab键:切换菜单和空四个格子; Shift键:组合键;(可以与F1,F2,或者1,2,3等等组合打出不一样的符号) Ctrl键:控制键;(eg:ctrl+shi…

    Java 2023年6月15日
    084
  • 【Java全栈进阶】-继承

    抽象类的案例代码: //研发部员工 abstract class Developer{ public abstract void work(); //抽象函数,需要abstract…

    Java 2023年6月7日
    067
  • 数据库连接查询总结

    建表SQL create table account ( account_id bigint PRIMARY KEY AUTO_INCREMENT, name varchar(64…

    Java 2023年6月6日
    076
  • nginx重新整理——————http请求的11个阶段中的precontent阶段[十六]

    前言 简单介绍一下precontent阶段。 正文 介绍一下这个阶段的几个模块。 ngx_http_try_files_module 模块。 syntax : tryfiles f…

    Java 2023年5月30日
    063
  • 生产环境中java api访问HDFS权限问题Permission denied解决方案

    java api访问hdfs文件系统未指定访问用户的情况下出现报错 //1、创建hadoop configuration对象 // Configuration conf = new…

    Java 2023年5月29日
    095
  • Mac APP store 更新页空白的解决办法

    如图,不知道什么时候起,我的 Mac APP store 的更新页面就变成了这样,即使有更新也依然显示空白。 试了几个网上搜到的方法,没效果,突然想到曾经看到有个工具可以在命令行进…

    Java 2023年6月5日
    0155
  • AQS源码二探-JUC系列

    本文已在公众号上发布,感谢关注,期待和你交流。 AQS源码二探-JUC系列 共享模式 这个方法是共享模式下获取资源失败,执行入队和等待操作,等待的线程在被唤醒后也在这个方法中自旋执…

    Java 2023年6月13日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球