Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 成功注销后重定向django内置注销视图_Python_Django_Redirect_View_Logout - Fatal编程技术网

Python 成功注销后重定向django内置注销视图

Python 成功注销后重定向django内置注销视图,python,django,redirect,view,logout,Python,Django,Redirect,View,Logout,我正在使用django构建一个登录和注销页面,下面是我的代码 url.py from django.conf.urls.defaults import * from django.conf import settings from django.core.urlresolvers import reverse urlpatterns = patterns('', url(r'^$', 'learn_django.views.home_page'),

我正在使用django构建一个登录和注销页面,下面是我的代码

url.py

from django.conf.urls.defaults import *
from django.conf import settings
from django.core.urlresolvers import reverse

urlpatterns = patterns('',
             url(r'^$', 'learn_django.views.home_page'),          
             url(r'^login/$', 'learn_django.views.login'),
             url(r'^logout/$', 'django.contrib.auth.views.logout', {'template_name': 'logout.html'}),
)
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.contrib.auth import authenticate, login as main_login, logout as main_logout

def home_page(request):
    return render_to_response("home_page.html")

def login(request):
    .....
    .....
    return render_to_response("login.html")
视图.py

from django.conf.urls.defaults import *
from django.conf import settings
from django.core.urlresolvers import reverse

urlpatterns = patterns('',
             url(r'^$', 'learn_django.views.home_page'),          
             url(r'^login/$', 'learn_django.views.login'),
             url(r'^logout/$', 'django.contrib.auth.views.logout', {'template_name': 'logout.html'}),
)
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.contrib.auth import authenticate, login as main_login, logout as main_logout

def home_page(request):
    return render_to_response("home_page.html")

def login(request):
    .....
    .....
    return render_to_response("login.html")
logout.html

{% extends 'base.html' %}
{% block title %}Logout Page{% endblock %}
{% block body %}
  <div>
    <p style='color:#092E20;font-size:25px;font-weight:bold;padding-top:20px;padding-left:15px;'>
         You have been successfully logged out......
    </p>
    <p>Redirecting to login page.....</p> 
  </div>      
{% endblock %}
{%extends'base.html%}
{%block title%}注销页面{%endblock%}
{%block body%}

您已成功注销。。。。。。

正在重定向到登录页…。

{%endblock%}
因此,在上面的代码中,我将有一个登录url,它将显示一个登录表单,并在成功登录后重定向到另一个url,该url工作正常

此外,我将有一个注销url,我正在使用django
内置的注销视图
,为其提供一个模板
logout.html
,该模板工作正常,并在单击注销url时成功显示上述html代码

所以现在我想在显示注销页面后重定向到登录页面(在一段时间之后…)。我的意思是,首先logout视图应该呈现
logout.html
代码,然后应该重定向到登录页面

任何人都可以让我知道如何在呈现logout.html后重定向到登录html页面,如上所述……

您可以使用该函数在指定的时间后重定向到另一个页面

{% block extrahead %}{{ block.super }}
    <script type="text/javascript">
        setTimeout(function() {
            window.location.href = "/login/";
        }, 2000);
    </script>
{% endblock %}
{%block extrahead%}{{block.super}
setTimeout(函数(){
window.location.href=“/login/”;
}, 2000);
{%endblock%}

{%block title%}注销页面{%endblock%}

之后添加此内容,并将其放入Logout.html中

<script>
    function redirect(){
       window.location.href = "supply_url_here";
    }

    setTimeout(redirect, 2000); //2000 is equivalent to 2 seconds
</script>

函数重定向(){
window.location.href=“此处提供url”;
}
设置超时(重定向,2000)//2000相当于2秒

作为javascript重定向的替代方法,您还可以执行HTTP刷新头:

# in views.py
from django.contrib.auth import logout as main_logout

def logout(*args, **kwargs):
    resp = main_logout(*args, **kwargs)
    resp['Refresh'] = '3;URL=/account/login/' # redirects after 3 seconds to /account/login
    return resp
根据需要修改URL.py


这样做的好处是,即使禁用javascript,它也可以工作。缺点是它实际上只是一个标准的标题,在HTTP标准中没有指定。

:基本上我对django和web技术非常陌生:)所以你能告诉我在logout.html中添加上述代码段的位置吗?@shivakrishna编辑了我的答案。@BurhanKhalid谢谢:)