浅谈在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实现bitmap数据结构详解
Feb 17 Python
Python闭包实现计数器的方法
May 05 Python
python django事务transaction源码分析详解
Mar 17 Python
Python装饰器用法示例小结
Feb 11 Python
Python使用一行代码获取上个月是几月
Aug 30 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
python实现自动化上线脚本的示例
Jul 01 Python
python版百度语音识别功能
Jul 09 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
基于python实现图片转字符画代码实例
Sep 04 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 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实现的在线人员函数库
2008/04/09 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
7个Javascript地图脚本整理
2009/10/20 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
如何通过命令行进入python
2020/07/06 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
C++程序员求职信范文
2014/04/14 职场文书
个人考核材料
2014/05/15 职场文书
家长学校培训材料
2014/08/20 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
教师培训简讯
2015/07/20 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android
python lambda 表达式形式分析
2022/04/03 Python