浅谈在django中使用redirect重定向数据传输的问题

 更新时间:2020年03月13日 17:25:56   作者:@凌晨三点半  
这篇文章主要介绍了浅谈在django中使用redirect重定向数据传输的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

环境:

python 3.6.4

django2.0.6

使用重定向redirect(‘url name') 如果不需要传数据的话那这样就OK了 如果要传数据的话 我琢磨了半天 还是决定用session来传输

所以 就这么干:

request.session['key_name] = value

request.session['msg'] = u'用户未登录'

然后在模板中使用:

<h1>{{ request.session.username }}</h1> {# 输出username保存的值 #}
{# {{ request.session['username' }} 以及{{ request.session.get('username') }} 和{% request.session.get('username') %} 都是错误的写法 #}}

就可以了。嗯 搞定。

补充知识:在django中,redirect如何传递message。

众所周知,在django中,默认的message,只能在同一个request中传递。

但如果在请求过程中,使用了redirect跳转,那么,这个一次性的message就会失败,

无法在前端给用户提示。

https://stackoverflow.com/questions/29673537/django-redirect-with-context/29673951#29673951

网上提供的思路,有如下两种:

一,使用message框架中的storeage存储实现。我觉得如果消息使用得频繁,且消息比较长时使用。

二,使用session来实现,这个实现更简单,但不可太频繁使用。

下面,就使用第二种来试试吧。

1,在有redirect的view中,加入session。

# 跨request传递message,使用session。
self.request.session['create_app'] = name
return redirect(reverse_lazy('app:list', args=()))

2,在需要获取message的view中,加入消息。

# 获取创建组件成功的session提示,同request传递message。
create_app = self.request.session.pop('create_app', False)
if create_app:
   messages.info(self.request, '{}创建成功,请编辑它的配置!'.format(create_app))

3,在前端网页中,显示此message。

{% for message in messages %}
<div class="alert alert-success alert-dismissible fade in" role="alert">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close">
    <span aria-hidden="true">×</span>
  </button>
  <strong>组件创建提示!</strong> {{ message }}.
</div>
{% endfor %}

4,样子

以上这篇浅谈在django中使用redirect重定向数据传输的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • Python简单实现安全开关文件的两种方式

    Python简单实现安全开关文件的两种方式

    这篇文章主要介绍了Python简单实现安全开关文件的两种方式,涉及Python的try语句针对错误的判定与捕捉相关技巧,需要的朋友可以参考下
    2016-09-09
  • Pytorch之finetune使用详解

    Pytorch之finetune使用详解

    今天小编就为大家分享一篇Pytorch之finetune使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python + pyqt5制作一个串口助手

    python + pyqt5制作一个串口助手

    这篇文章主要介绍了python + pyqt5制作一个串口助手,串口助手是串口通信使用的工具,为整合知识,打算做个串口助手,本文给大家讲解的非常详细,需要的朋友可以参考下
    2023-04-04
  • python总结之闭包和装饰器

    python总结之闭包和装饰器

    这篇文章主要为大家介绍了python闭包和装饰器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Python通过OpenCV的findContours获取轮廓并切割实例

    Python通过OpenCV的findContours获取轮廓并切割实例

    这篇文章主要介绍了Python通过OpenCV的findContours获取轮廓并切割实例,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 在echarts中图例legend和坐标系grid实现左右布局实例

    在echarts中图例legend和坐标系grid实现左右布局实例

    这篇文章主要介绍了在echarts中图例legend和坐标系grid实现左右布局实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python模拟伯努利试验和二项分布代码实例

    Python模拟伯努利试验和二项分布代码实例

    这篇文章主要介绍了Python模拟伯努利试验和二项分布代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 使用Pycharm创建一个Django项目的超详细图文教程

    使用Pycharm创建一个Django项目的超详细图文教程

    Django是比较经典的Python web框架,最近刚好在项目中用到了Django,所以下面这篇文章主要给大家介绍了关于使用Pycharm创建一个Django项目的超详细图文教程,文中介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • python字典和json.dumps()的遇到的坑分析

    python字典和json.dumps()的遇到的坑分析

    在本篇文章里小编给大家整理了关于python字典和json.dumps()的遇到的坑分析,需要的朋友们可以学习下。
    2020-03-03
  • ubuntu迁移anaconda到另外的目录(完美解决)

    ubuntu迁移anaconda到另外的目录(完美解决)

    本文主要介绍了ubuntu迁移anaconda到另外的目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论