django的render函数_reverse函数用法

django的render函数_reverse函数用法reverse函数reverse函数的作用是用来进行URL反转的,接下来我们介绍reverse函数的几种用法之前我们都是通过url来访问视图函数。有时候我们知道这个视图函数,但是想反转回他的url

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

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

reverse函数

reverse函数的作用是用来进行URL反转的,接下来我们介绍reverse函数的几种用法
 

  1. 之前我们都是通过url来访问视图函数。有时候我们知道这个视图函数,但是想反转回他的url。这时候就可以通过reverse来实现。示例代码如下:
reverse("list")
> /list/
  1. 如果有应用命名空间或者有实例命名空间,那么应该在反转的时候加上命名空间。示例代码如下:
reverse('book:list')
> /book/list/
  1. 如果这个url中需要传递参数,那么可以通过kwargs来传递参数。示例代码如下:
reverse("front:articles",kwargs={"id":1})
> /front/articles/1
  1. 因为django中的reverse反转url的时候不区分GET请求和POST请求,因此不能在反转的时候添加查询字符串的参数。如果想要添加查询字符串的参数,只能手动的添加。示例代码如下:
login_url = reverse('login') + "?next=/"

接下来我们模仿知乎做个小案列,我们访问知乎首页https://www.zhihu.com/,如果你未登录,网站会重定向到https://www.zhihu.com/signin?next=%2F登录页面,接下来我们实现这个功能

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

# views.py
def index(request):
    username = request.GET.get('username')
    if username:
        return HttpResponse("front首页")
    else:
        return redirect(reverse('front:login')  + "?next=/")

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

接下来我们通过浏览器访问127.0.0.1/front/,页面会自动重定向到127.0.0.1:8000/front/signIn/?next=/,我们可以通过pycharm的控制台清楚的看到重定向的过程

[14/May/2021 09:46:58] "GET /front/ HTTP/1.1" 302 0
[14/May/2021 09:46:58] "GET /front/signIn/?next=/ HTTP/1.1" 200 17
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何使用Journalctl查看并操作Systemd日志

    如何使用Journalctl查看并操作Systemd日志提供:ZStack云计算内容简介作为最具吸引力的优势,systemd拥有强大的处理与系统日志记录功能。在使用其它工具时,日志往往被分散在整套系统当中,由不同的守护进程及进程负责处理,这意味着我们很难跨越多种应用程序对其内容进行解读。相比之下,systemd尝试提供一套集中化管理方案,从而统一打理全部内核及用户级进程的日志信息。这套系统能够收集并管理日志内容,而这也就是我们所熟知的journal。J

    2022年5月23日
    49
  • 【系统白程序利用】werfault.exe

    【系统白程序利用】werfault.exe#include"stdafx.h"#include<windows.h>int_tmain(intargc,_TCHAR*argv[]){//Getrootkeyhandle.HKEYhRoot=nullptr;LPCTSTRlpSubKey=L"Software\\Microsoft\\Windows\\Wi…

    2022年6月23日
    28
  • hive的元数据存储在derby和mysql_桌面云必须部署的组件包括

    hive的元数据存储在derby和mysql_桌面云必须部署的组件包括搭建hive的环境需要hadoop的dfs和yarn可以正常运行的情况下。准备好apache-hive-1.2.1-bin.tar.gz和mysql-libs.zip两个包hive安装步骤:解压apache-hive-1.2.1-bin.tar.gz到/usr/local/src下,并且将其重命名为hivetar-zxvfapache-hive-1.2.1-bin.tar.gzmvapache-hive-1.2.1-binhive复制/hive/conf下的hive-en.

    2025年6月19日
    2
  • 安全帽识别系统的基本参数「建议收藏」

    安全帽识别系统的基本参数「建议收藏」随着鹰眸安全帽识别系统的不断落地,应用的领域不断扩大,部分客户对产品的认知还不够,下面就给大家详细介绍一下安全帽识别系统的主要参数和性能:鹰眸安全帽识别系统对监控摄像机的品牌没有要求,只要分配率不低于720P的网络彩色摄像机(支持RTSP协议)即可,兼容市面上99%的摄像机。摄像机安装高度建议在2-2.5m,水平角度大于15度,识别效果更理想识别目标距离,这个主要是跟监控摄像机的镜头参数有关,…

    2022年5月19日
    39
  • 四轴飞行器原理图详解(三旋翼飞行器)

    顾名思义,四轴飞行器由四个螺旋桨高速旋转产生升力,为其提供飞行动力。四个电机转向正反各两个,可以相互抵消反扭矩。不同于常规固定翼飞机,多旋翼无人机属于静不稳定系统,因此必须依赖于强大的飞控系统才能飞行。四轴飞行器可分为“十字型”和“X型”,其中“十字型”机动性强主要应用在穿越机或特技表演无人机;“X型”稳定性强,是最常见的四轴飞行器构型。本文中所介绍的飞控系统都是基于“X型”四轴飞

    2022年4月17日
    94
  • pycharm for mac安装

    pycharm for mac安装http www xue51 com mac 5604 html 转载于 https www cnblogs com LeesinDong p 10835539 html

    2025年6月7日
    2

发表回复

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

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