zoukankan      html  css  js  c++  java
  • DJANGO中多种重定向方法使用

    本文主要讲解使用HttpResponseRedirect、redirect、reverse以及配置文件中配置URL等重定向方法

    使用场景,例如在表单一中提交数据后,需要返回到另一个指定的页面即可使用重定向方法

    一、 使用HttpResponseRedirect 
    ● fuhao The first argument to the constructor is required – the path to redirect to. This can be a fully qualified URL or an absolute path with no domain。”参数可以是绝对路径跟相对路径”

    from django.http import HttpResponseRedirect  
    
    @login_required  
    def update_time(request):  
        #表单处理OR逻辑处理  
        return HttpResponseRedirect('/')  #跳转到主界面  
    #如果需要传参数
    return HttpResponseRedirect('/commons/index/?message=error')

    二 redirect和reverse

    from django.core.urlresolvers import reverse  
    from django.shortcuts import redirect  
    #https://docs.djangoproject.com/en/1.8.2/topics/http/shortcuts/  
    
    @login_required  
    def update_time(request):  
        #进行要处理的逻辑  
        return redirect(reverse('test.views.invoice_return_index', args=[]))  #跳转到index界面  
    
    redirect 类似HttpResponseRedirect的用法,也可以使用 字符串的url格式 /..index/?a=add
    reverse 可以直接用views函数来指定重定向的处理函数,args是url匹配的值。

    三、 其他

    #其他的也可以直接在url中配置
    from django.views.generic.simple import redirect_to 
    在url中添加 (r'^test/$', redirect_to, {'url': '/author/'}), 
    
    #我们甚至可以使用session的方法传值
    request.session['error_message'] = 'test'  
    redirect('%s?error_message=test' % reverse('page_index'))  
    #这些方式类似于刷新,客户端重新指定url。

    #重定向,如果需要携带参数,那么能不能直接调用views中 url对应的方法来实现呢,默认指定一个参数。
    #例如view中有个方法baseinfo_account, 然后另一个url(对应view方法为blance_account)要重定向到这个baseinfo_account。
    #url中的配置:
    urlpatterns = patterns('',  
        url(r'^index/', 'account.views.index_account'),  
        url(r'^blance/', 'account.views.blance_account'),  
    )  
    # views.py
    @login_required  
    def index_account(request, args=None):  
        ​#按照正常的url匹配这么写有点不合适,看起来不规范  
        ​if args:  
            print args  
        return render(request, 'accountuserinfo.html', {"user": user})  
    
    
    @login_required      
    def blance_account(request):  
        return index_account(request, {"name": "orangleliu"}) 
    #测试为:
    #1 直接访问 /index 是否正常 (测试ok)
    #2 访问 /blance 是否能正常的重定向到 /index页面,并且获取到参数(测试ok,页面为/index但是浏览器地址栏的url仍然是/blance)
    #这样的带参数重定向是可行的。
    作者:子钦加油
    出处:https://www.cnblogs.com/zmdComeOn/
    个性签名:努力生活,努力走路
    阿里云拼团:https://www.aliyun.com/1111/home?userCode=f4ee1llo1核2G1M,86一年,229三年;2核4G5M,799三年;2核8G5M,1399三年
    腾讯云三月采购计划特价:https://cloud.tencent.com/act/cps/redirect?redirect=1073&cps_key=15d0b1673287c43fe946626d9f4e2eee&from=console1核2G1M,88一年;1核2G1M,268三年;2核4G5M,998一年;4核8G5M,2888元三年
    如果,想给予我更多的鼓励,求打
  • 相关阅读:
    解决UITableView中Cell重用机制导致内容出错的方法总结
    Hdu 1052 Tian Ji -- The Horse Racing
    Hdu 1009 FatMouse' Trade
    hdu 2037 今年暑假不AC
    hdu 1559 最大子矩阵
    hdu 1004 Let the Balloon Rise
    Hdu 1214 圆桌会议
    Hdu 1081 To The Max
    Hdu 2845 Beans
    Hdu 2955 Robberies 0/1背包
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/13172074.html
Copyright © 2011-2022 走看看