浅谈在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利用elaphe制作二维条形码实现代码
May 25 Python
python字典DICT类型合并详解
Aug 17 Python
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
windows下python之mysqldb模块安装方法
Sep 07 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
Python实现带下标索引的遍历操作示例
May 30 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 Python
python turtle 绘制太极图的实例
Dec 18 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
iview的table组件自带的过滤器实现
2019/07/12 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
python显示天气预报
2014/03/02 Python
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python Requests 基础入门
2016/04/07 Python
python url 参数修改方法
2018/12/26 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python安装selenium包详细过程
2019/07/23 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
材料会计岗位职责
2014/03/06 职场文书
校外活动方案
2014/08/28 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
600字作文之感受大自然
2019/11/27 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python