Django(24)永久重定向和临时重定向[通俗易懂]

Django(24)永久重定向和临时重定向[通俗易懂]重定向重定向分为永久重定向和临时重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此我们应该给他重定向到登录页面。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

重定向

重定向分为永久重定向临时重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此我们应该给他重定向到登录页面。
 

  • 永久重定向:http的状态码是301,多用于旧网址被废弃了要转到一个新的网址确保用户的访问,最经典的就是京东网站,你输入www.jingdong.com的时候,会被重定向到www.jd.com,因为jingdong.com这个网址已经被废弃了,被改成jd.com,所以这种情况下应该用永久重定向。
  • 临时重定向:http的状态码是302,表示页面的暂时性跳转。比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面,这种情况下,应该用暂时性重定向。
     

重定向函数redirect

在Django中,重定向是使用redirect(to, *args, permanent=False, **kwargs)来实现的。

  • to是一个url地址,
  • permanent默认是False代表临时重定向,设置为True代表永久重定向。

关于重定向的使用。请看以下例子:

# views.py
def index(request):
    if request.GET.get('username'):
        return HttpResponse("欢迎来到个人中心")
    else:
        return redirect(reverse('login'))


def index2(request):
    return HttpResponse('登录页面')


# urls.py
urlpatterns = [
    path('', views.index),
    path('login/', views.index2, name="login")
]

接下来我们访问127.0.0.1,因为没有携带参数username,所以会执行indexelse语句,会302临时重定向到/login/路由,我们可以通过Pycharm控制台看到

[21/May/2021 03:04:45] "GET / HTTP/1.1" 302 0
[21/May/2021 03:04:45] "GET /login/ HTTP/1.1" 200 12

如果需求是要永久重定向,那么将permanent设置为True即可

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166160.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月7日 上午7:46
下一篇 2022年8月7日 上午8:00


相关推荐

  • FPGA学习笔记:单次调用@(posedge clk)(没有always)

    FPGA学习笔记:单次调用@(posedge clk)(没有always)之前看小梅哥视频 对下面语句有所疑惑 不知道这个 posedge 触发后只执行一句还是后面的都执行 能不能加 beginend 只触发某几句 如果能用 beginend 的话 没有触发上升沿那么这个语句会不会阻塞后面的语句 自己就写了个 testbench 代码如下 timescale1ns 1ns definetm20mo regclk regtest1 regtest2 regtest3 regclk1 initial

    2026年3月18日
    2
  • db2修改字段长度的sql语句

    db2修改字段长度的sql语句

    2021年7月15日
    479
  • 使用flyio全局拦截ajax「建议收藏」

    使用flyio全局拦截ajax「建议收藏」1.场景如果我们在已经开发好的一个网站上优化,做ajax请求缓存,不确定他使用了什么ajax工具,应该怎么做。假如开发者使用的是axios,jquery等,我们可以在其中使用axios和jquery的拦截器做拦截。但是flyio提供了一个更简单的方法。2.使用1.安装flyionpminstallflyio–save2.使用如下使用,即可拦截全局的ajaximportflyfrom’flyio’;importEngineWrapperfrom’flyio/dis

    2025年10月7日
    6
  • 分布式日志传输系统Databus(一)–系统介绍「建议收藏」

    分布式日志传输系统Databus(一)–系统介绍「建议收藏」Databus系统是微博DIP团队开源的分布式日志传输系统。它是一个分布式、高可用的,用于采集和移动大量日志数据的服务。它基于流式数据的简单而灵活的架构,具备健壮性和容错性,具有故障转移与恢复机制。它

    2022年7月2日
    24
  • linux rpm 卸载 java_linux下用rpm 安装卸载jdk「建议收藏」

    linux rpm 卸载 java_linux下用rpm 安装卸载jdk「建议收藏」1、如果linux是centos的话,请先卸载openjdkjava-version,会有下面的信息:卸载默认的用root用户登陆到系统,打开一个终端输入#rpm-qa|grepgcj显示内容其中包含下面两行信息#java-1.4.2-gcj-compat-1.4.2.0-27jpp#java-1.4.2-gcj-compat-devel-l.4.2.0-27jpp卸载#rpm-…

    2025年11月27日
    7
  • 汉化日记_sorceress alive汉化

    汉化日记_sorceress alive汉化使用方法:下载后解压,替换你安装OpenLiveWriter位置:C:\Users\Administrator\AppData\Local\OpenLiveWriter的app目录下的OpenLiveWriter.Localization.dll即可变成中文链接:https://pan.baidu.com/s/1Ja0-DcRihiEHtvsU1u5j2w?pwd=u7f8提取码:u7f8…

    2022年10月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号