浅谈在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通过scapy获取局域网所有主机mac地址示例
May 04 Python
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
python reduce 函数使用详解
Dec 05 Python
Python在groupby分组后提取指定位置记录方法
Apr 20 Python
基于Python List的赋值方法
Jun 23 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
python 字典和列表嵌套用法详解
Jun 29 Python
Python 中的Sympy详细使用
Aug 07 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
一段php加密解密的代码
2007/07/16 PHP
php 分页类 扩展代码
2009/06/11 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
提高网站信任度的技巧
2008/10/17 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
php中and 和 &amp;&amp;出坑指南
2018/07/13 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
Python中基本的日期时间处理的学习教程
2015/10/16 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python3.6简单操作Mysql数据库
2017/09/12 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
python小程序实现刷票功能详解
2019/07/17 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
PHP中如何创建和修改数组
2012/05/02 面试题
文秘档案管理岗位职责
2014/03/06 职场文书
春节联欢会策划方案
2014/05/16 职场文书
主题班会演讲稿
2014/05/22 职场文书
幼儿老师求职信
2014/06/30 职场文书
讲党性心得体会
2014/09/03 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang