人分类: django
 

用django开发web应用, 经常会遇到从一个旧的url转向一个新的url,也就是重定向。

HttpResponseRedirect:构造函数的第一个参数是必要的 — 用来重定向的地址。这些能够是完全特定的URL地址(比如,’http://www.yahoo.com/search/‘),或者是一个不包含域名的绝对路径地址(例如, ‘/search/’)。

from django.http import HttpResponseRedirect
from django.views import View class LoginView(View):
def post(self, request):
...
return HttpResponseRedirect("/index/")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

还可以通过reverse()对url的name进行解析:

url.py

from django.conf.urls import url
from myapp import views urlpatterns = [
url(r'^index/$', views.myview, name='index'),
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

myapp/views.py

from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse def myview(request):
...
return HttpResponseRedirect(reverse('index'))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

而如果url中包含参数,如下类型的url:

url(r'^blog/(?P<blog_id>\d+)/$', BlogDetailView.as_view(), name='blog_id')
  • 1

如果我们还采用上述方式实现重定向,则会提示缺少一个参数:blog_id。此时需要在reverse()中添加参数:

blog_id = blog.id   #获取到博客的id号
return HttpResponseRedirect(reverse('index', args=(blog_id)))
  • 1
  • 2

如果包含多个字段,可以采用如下形式:

url(r'^blog/(?P<blog_id>\d+)/(?P<user_id>\d+)、$', BlogDetailView.as_view(), name='blog_id')

return HttpResponseRedirect(reverse('index', kwargs={'blog_id': blog_id, 'user_id': user_id}))

https://blog.csdn.net/geerniya/article/details/79021784(原地址)

最新文章

  1. 如何数据库表数据导出到excel中
  2. mysql: unknown variable 'character-set-client=utf8'
  3. 如何使用THashedStringList
  4. IOS 其它语言比较-Objc与JAVA的比较
  5. 【二分答案】【贪心】bzoj3969
  6. Python语言开发的一些问题
  7. jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
  8. 安卓四大组件之--service
  9. std::move()和std::forward()
  10. 在后台CS文件里面,隐藏和显示Repeater里面控件
  11. Node.js权威指南 (5) - 使用Buffer类处理二进制数据
  12. 程序员求职之道(《程序员面试笔试宝典》)之求职有用网站及QQ群一览表
  13. Activity跳转
  14. git https 请求报错 504
  15. 深入理解Java中的同步静态方法和synchronized(class)代码块的类锁
  16. echo不换行的实现
  17. 在linux上安装tomcat
  18. iframe子父页面函数互相调用
  19. 关于json 转换BigDecimal精度丢失问题
  20. zabbix系列之六——安装后配置二Items

热门文章

  1. JAVA并发编程的艺术 Java并发容器和框架
  2. vue和cordova项目整合打包,并实现vue调用android的相机的demo
  3. DevExpress WPF v19.1新版亮点:Scheduler等控件新功能
  4. tar命令--数据归档(一)
  5. 【NOIP2016提高A组五校联考4】square
  6. linux-文件系统-5
  7. _vimrc
  8. sh_08_石头剪刀布
  9. 苹果cms开启防红跳转后,提示模板文件不存在解决方法
  10. 命令行创建 vue 项目(仅用于 Vue 2.x 版本)