浅谈在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实现稀疏矩阵示例代码
Jun 09 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
python版学生管理系统
Jan 10 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
python最小生成树kruskal与prim算法详解
Jan 17 Python
Python3模拟curl发送post请求操作示例
May 03 Python
django连接oracle时setting 配置方法
Aug 29 Python
python实现超市商品销售管理系统
Oct 25 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
Jan 23 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
selenium与xpath之获取指定位置的元素的实现
Jan 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
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
Python sys.path详细介绍
2013/10/17 Python
python字符串替换示例
2014/04/24 Python
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python自动重试HTTP连接装饰器
2015/04/28 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
Django实现学生管理系统
2019/02/26 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
公司营业员的自我评价
2014/03/04 职场文书
满月酒主持词
2014/03/27 职场文书
群教班子对照检查材料
2014/08/26 职场文书
八项规定对照检查材料
2014/08/31 职场文书
迟到检讨书范文
2015/01/27 职场文书
会计工作态度自我评价
2015/03/06 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
昆虫记读书笔记
2015/06/26 职场文书