环境:
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重定向数据传输的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】