浅谈在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模块顶层运行的代码引起的一个Bug
Jul 04 Python
python提示No module named images的解决方法
Sep 29 Python
讲解Python中fileno()方法的使用
May 24 Python
python学习之第三方包安装方法(两种方法)
Jul 30 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
Python使用OpenCV进行标定
May 08 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
python实现网页自动签到功能
Jan 21 Python
python编程进阶之异常处理用法实例分析
Feb 21 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
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python3 log10()函数简单用法
2019/02/19 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
12月小学生校园广播稿
2014/02/04 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
正科级干部考察材料
2014/05/29 职场文书
升国旗演讲稿
2014/09/05 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
信访工作个人总结
2015/03/03 职场文书
小学班主任个人总结
2015/03/03 职场文书
催款通知书范文
2015/04/17 职场文书
升学宴家长答谢词
2015/09/29 职场文书
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫