浅谈在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 面向对象 成员的访问约束
Dec 23 Python
python实现从web抓取文档的方法
Sep 26 Python
python实现在windows下操作word的方法
Apr 28 Python
详解Python如何获取列表(List)的中位数
Aug 12 Python
python实现AES加密解密
Mar 28 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
Python退出时强制运行一段代码的实现方法
Apr 29 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 Python
calendar在python3时间中常用函数举例详解
Nov 18 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 MVC模式在网站架构中的实现分析
2010/03/04 PHP
PHP 魔术函数使用说明
2010/05/14 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
php教程之phpize使用方法
2014/02/12 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
Python常见的pandas用法demo示例
2019/03/16 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
python实现飞机大战项目
2020/03/11 Python
如何利用find命令查找文件
2015/02/07 面试题
金融专业个人求职信范文
2013/11/28 职场文书
交通文明倡议书
2014/05/16 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫