django的render函数_Django Unchained

django的render函数_Django Unchainedreverse函数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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166176.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 权限漏洞:水平权限漏洞、垂直权限漏洞

    权限漏洞:水平权限漏洞、垂直权限漏洞水平权限漏洞是指Web应用程序接收到用户请求时,没有判断数据的所属人,或者在判断数据所属人时是从用户提交的参数中获取了userid,导致攻击者可以自行修改userid修改不属于自己的数据。漏洞示例:XXX/getAddress?id=1如上,攻击者修改addressId即可得到他人的address信息。开发容易习惯性的在生成CRUD(增查改删)表单(或AJAX请求)的时候根据认证过的用…

  • 四大主流CA机构_CA机构的作用

    四大主流CA机构_CA机构的作用四大主流CA机构–wosign是唯一支持免费证书的找到免费SSL证书了,刚刚看到他们网站有快捷申请免费SSL证书,很方便,10分钟颁发,试了一下,申请了2个域名,一个颁发很快,另一个稍微有点慢,问他们客服,客户说另外一个域名,涉及到敏感信息,需要两签,所以审核会慢一下,好吧,只要证书好用,等一会也无所谓啦!另外,我是看到微博上面的这个四大主流CA机构证书对比表,才去的申请的哦!…

    2022年10月31日
  • OpenCv函数学习(一)[建议收藏]

    IntelImageProcessingLibrary(IPL)位深度在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。黑白二色的图像是数字图像中最简单的一种,它只有黑

    2021年12月18日
  • QT QMapIterator

    QT QMapIteratorQT的迭代器有两种类型:STL形式和JAVA形式。QT的STL形式的迭代器,和STL的迭代器用法类似,而JAVA形式的迭代器,则提供了一套迭代器类,用于QT容器的迭代。这其中,就有QT的迭代器类QMapIterator。QMapIterator的公共函数如下:QMapIterator(constQMap<Key,T>&map) bool fi…

  • springaop实现原理面试_springmvc模式的工作原理

    springaop实现原理面试_springmvc模式的工作原理SpringAop实现原理什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-OrientedPrograming,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的

  • IO流的分类_io流的作用

    IO流的分类_io流的作用IO流的分类可以分为以下三种:第一种:输入流和输出流按照流的流向来分,可以分为输入流和输出流。输入,输出都是从程序运行所在内存的角度来划分的。输入流:只能从中读取数据,而不能向其写入数据,由InputStream和Reader作为基类。输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为基类第二种:字节流和字符流字节流和字符流的用法几乎完全一样,区…

    2022年10月20日

发表回复

您的电子邮箱地址不会被公开。

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