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


Posted in Python onMarch 13, 2020

环境:

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重定向数据传输的问题

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

Python 相关文章推荐
Python编程中的反模式实例分析
Dec 08 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
使用Flask集成bootstrap的方法
Jul 24 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
python直接获取API传递回来的参数方法
Dec 17 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
Python地图绘制实操详解
Mar 04 Python
python中的decimal类型转换实例详解
Jun 26 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
MNIST数据集转化为二维图片的实现示例
Jan 10 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
在Django中预防CSRF攻击的操作
Mar 13 #Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 #Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 #Python
django 取消csrf限制的实例
Mar 13 #Python
django-csrf使用和禁用方式
Mar 13 #Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 #Python
python爬虫实现获取下一页代码
Mar 13 #Python
You might like
php微信支付之APP支付方法
2015/03/04 PHP
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
Python采用raw_input读取输入值的方法
2014/08/18 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
python简单贪吃蛇开发
2019/01/28 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
python实现从ftp服务器下载文件
2020/03/03 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
大学生求职自我评价
2014/01/16 职场文书
主管会计岗位责任制
2014/02/10 职场文书
美容院经理岗位职责
2014/04/03 职场文书
团员个人总结
2015/02/26 职场文书
vue如何清除浏览器历史栈
2022/05/25 Vue.js