浅谈在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通过装饰器检查函数参数数据类型的方法
Mar 13 Python
在Django中创建第一个静态视图
Jul 15 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
Jun 05 Python
Python操作MySQL数据库的示例代码
Jul 13 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
浅谈Python __init__.py的作用
Oct 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
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
js 颜色选择插件
2017/01/23 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
简单了解Python3里的一些新特性
2019/07/13 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
运行Python编写的程序方法实例
2020/10/21 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
应届护士推荐信
2013/11/16 职场文书
珍珠奶茶店创业计划书
2014/01/11 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
大学生创业计划书
2019/06/24 职场文书
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
python开发制作好看的时钟效果
2022/05/02 Python