浅谈在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 相关文章推荐
Numpy数组转置的两种实现方法
Apr 17 Python
Python selenium抓取微博内容的示例代码
May 17 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
浅谈Django的缓存机制
Aug 23 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
从0开始的Python学习016异常
Apr 08 Python
python五子棋游戏的设计与实现
Jun 18 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
JS解密入门 最终变量劫持
2008/06/25 Javascript
Js四则运算函数代码
2012/07/21 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
详解Python中第三方库Faker
2020/09/25 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
日语专业个人的求职信
2013/12/03 职场文书
英语教师求职信
2014/06/16 职场文书
2015年国庆节寄语
2015/08/17 职场文书
学前班教学反思
2016/02/24 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis