首页 > Django视图间传递参数

Django视图间传递参数

大家好。最近在自学Django的Web框架搭建,遇到一个很纠结的问题。。。
比如说,如果在一个页面视图上定义了一些表单数据,提交后需要让这些数据和重定向的链接一起传递到一个新的页面(或者刷新当前页面),该如何定义呢- -
好像是个很傻的问题,但因为身边没人可以请教,网上搜索也是云里雾里的,求指导。。。


这个问题可以参考我的博文
http://www.cnblogs.com/psklf/p/5542612.html


在view中传递短小的消息不建议放在url中,这样第三方就可以控制你要传的消息了,如果过滤不严还会出现严重的安全问题,可以使用相应框架的flash session技术,在django中flash session叫做message, 点我

django中的message支持多种级别的消息,比如info, success等,而且还支持不同的backend,可以根据业务自行决定使用那种backend,或者自定义backend


这个提交的数据可以先写到 session 中,然后重定向到你指定的url,然后在对应的视图中通过处理 session 数据就可以达到你的目的了


可以使用HttpResponseRedirect来实现,在view1获取到的数据通过url参数的形式传递给view2,或者通过写cookie或者session的方式来保存。
当然上面的方式都只推荐在一些非敏感数据的传递,敏感数据的话还是使用数据库来作保存。
下面给出通过redirect方式的示例代码

from django.views.generic import RedirectView
class View1(RedirectView):
    def post(self, request, *args, **kwargs):
        # get your data from request...
        post_data_json = request.POST
        response = HttpResponseRedirect(reverse('urlname2')+"?args1="+json.dumps(order_items))
    return response
【热门文章】
【热门文章】