浅谈在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 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
Django学习笔记之ORM基础教程
Mar 27 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
基于python生成器封装的协程类
Mar 20 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
Django实现文件上传和下载功能
Oct 06 Python
Django 多对多字段的更新和插入数据实例
Mar 31 Python
Django数据库迁移常见使用方法
Nov 12 Python
python的dict判断key是否存在的方法
Dec 09 Python
python推导式的使用方法实例
Feb 28 Python
Python 视频画质增强
Apr 28 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程序员基本要求和必备技能
2014/05/09 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python对列表排序的方法实例分析
2015/05/16 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python实现AES加密和解密
2019/03/27 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
python对XML文件的操作实现代码
2020/03/27 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
校园报刊亭创业计划书
2014/01/02 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
redis lua限流算法实现示例
2022/07/15 Redis