小編給大家分享一下在django中怎么使用redirect重定向數(shù)據(jù)傳輸,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)文山州免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。環(huán)境:
python 3.6.4
django2.0.6
使用重定向redirect(‘url name') 如果不需要傳數(shù)據(jù)的話那這樣就OK了 如果要傳數(shù)據(jù)的話 我琢磨了半天 還是決定用session來傳輸
所以 就這么干:
request.session['key_name] = value
request.session['msg'] = u'用戶未登錄'
然后在模板中使用:
{{ request.session.username }}
{# 輸出username保存的值 #}
{# {{ request.session['username' }} 以及{{ request.session.get('username') }} 和{% request.session.get('username') %} 都是錯誤的寫法 #}}
就可以了。嗯 搞定。
補充知識:在django中,redirect如何傳遞message。
眾所周知,在django中,默認的message,只能在同一個request中傳遞。
但如果在請求過程中,使用了redirect跳轉(zhuǎn),那么,這個一次性的message就會失敗,
無法在前端給用戶提示。
https://stackoverflow.com/questions/29673537/django-redirect-with-context/29673951#29673951
網(wǎng)上提供的思路,有如下兩種:
一,使用message框架中的storeage存儲實現(xiàn)。我覺得如果消息使用得頻繁,且消息比較長時使用。
二,使用session來實現(xiàn),這個實現(xiàn)更簡單,但不可太頻繁使用。
下面,就使用第二種來試試吧。
1,在有redirect的view中,加入session。
# 跨request傳遞message,使用session。 self.request.session['create_app'] = name return redirect(reverse_lazy('app:list', args=()))
2,在需要獲取message的view中,加入消息。
# 獲取創(chuàng)建組件成功的session提示,同request傳遞message。 create_app = self.request.session.pop('create_app', False) if create_app: messages.info(self.request, '{}創(chuàng)建成功,請編輯它的配置!'.format(create_app))
3,在前端網(wǎng)頁中,顯示此message。
{% for message in messages %}組件創(chuàng)建提示! {{ message }}.{% endfor %}
4,樣子
以上是“在django中怎么使用redirect重定向數(shù)據(jù)傳輸”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!