浅谈在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制作一个桌面便签软件
Aug 09 Python
python基于phantomjs实现导入图片
May 13 Python
python实现简单神经网络算法
Mar 10 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
python sorted方法和列表使用解析
Nov 18 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python 求两个向量的顺时针夹角操作
Mar 04 Python
Python中super().__init__()测试以及理解
Dec 06 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中二维数组排序问题方法详解
2015/08/28 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
优化javascript的执行速度
2010/01/23 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
domReady的实现案例
2016/11/23 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
NumPy统计函数的实现方法
2020/01/21 Python
浅谈Python中的字符串
2020/06/10 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
大学生职业生涯规划书范文
2014/01/04 职场文书
标准自荐信范文
2014/01/29 职场文书
请假条标准格式规范
2014/04/10 职场文书
领导干部失职检讨书
2015/05/05 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
Vue实现动态查询规则生成组件
2021/05/27 Vue.js