Django框架-登陸後自定義跳轉頁面

Django auth 登錄後頁面跳轉至/account/profile,修改跳轉至其餘頁面

這幾天在學習django,django功能很強大,自帶的auth,基本能夠知足用戶註冊登錄登出,簡單的用戶註冊登錄系統使用django auth足矣。固然也不是拿來就能用的,須要本身寫登錄頁面的模板,也很簡單。本身嘗試了一下,發現一個問題,當驗證登錄成功後,頁面會自動跳轉到/account/profile,我並不想把頁面跳轉到這個頁面,如何修改呢?web

查了一堆網頁,仍是官網靠譜,很簡單,就在project的setting里加一句話就Okay!ajax

LOGIN_REDIRECT_URL = ‘/index’

我這裏是指定登錄成功後跳轉到index頁面,朋友們能夠根據本身須要進行修改。就這樣就okay啦!歡呼吧,而後接着解決別的問題!django

========================================================================================================================================================session

Django 跳轉和重定向的方法:post

跳轉和重定向很常見的場景就是登陸和註銷後返回到當前頁面。給你個登陸和註銷的例子。好比用戶正在瀏覽一篇文章,發現下載該文章的附件須要登陸才能進行,這時候點擊登錄連接轉入登錄頁面,輸入用戶名密碼登錄成功之後,會自動轉回原來的那篇文章所在的頁面。(目前不少網站採用ajax方法彈出對話框登錄,效果更好一些)怎麼作呢?下面說的是django的實現,可是大多數的web framework均可以這麼作。註銷操做:由於不須要單獨的註銷頁面,相對簡單,利用HTTP_REFERER,Django的註銷頁面這樣寫就行:def logout_user(request):    logout(request)    return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))登陸操做:登錄操做相對複雜,由於通常都有單獨的登錄頁面,若是登錄成功再取HTTP_REFERER就是登錄頁面本身的url,而不是以前的那個頁面。能夠利用django的session,在轉入登錄的時候,用的是頁面的get請求,這時候在session中記錄HTTP_REFERER,用戶輸入用戶名密碼進行登錄的時候(Post請求),從session中取出便可:def login_user(request):    if request.method == 'GET':        #記住來源的url,若是沒有則設置爲首頁('/')        request.session['login_from'] = request.META.get('HTTP_REFERER', '/')        #TODO:顯示登錄頁面,blablabla    elif request.method == 'POST':        #TODO: 用戶登陸操做,blablabla        #重定向到來源的url        return HttpResponseRedirect(request.session['login_from'])最後的重定向,有時候須要用戶感受到被重定向回去了,就寫個簡單的頁面告訴用戶兩秒之後跳轉,而後改改相應的login代碼就行:<p>兩秒鐘後轉入以下連接,若是長時間沒有響應請直接點擊:</p><p><a href="{{ refresh_url }}">{{ refresh_url }}</a></p><meta http-equiv="refresh" content="2;url={{ refresh_url }}">
相關文章
相關標籤/搜索