首页 > 编程问答 >当我注销时,我得到一个空白页面 - Django 5

当我注销时,我得到一个空白页面 - Django 5

时间:2024-07-21 01:56:21浏览次数:13  
标签:python django logout

因此,当我想注销用户时,它会显示一个白色的空白页面 http://127.0.0.1:8000/accounts/logout/

我正在使用快捷方式重定向到设置中的下一页.py 和我测试了使用管理面板注销,它工作正常。

settings.py

... 

LOGIN_REDIRECT_URL = 'index'

LOGOUT_REDIRECT_URL = 'index' 

...

这是我的 urls.py:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('post.urls')),
    path('accounts/', include('django.contrib.auth.urls') ),
]

这就是我登录的方式:

login.html:

{% extends "base.html" %}

{% block content %}

<div class="container">
    <h1> LOGIN FORM </h1>
<form method="post">
    {% csrf_token %}
    {{form.as_p}}
    <button type="submit" class= "btn btn-success">Log In</button>
</form>
</div>
<br>
{% endblock content %}

base.html:

...
<ul>
          <li><a class="active " href="{% url 'index' %}">Home</a></li>
          <li><a class="active " href="{% url 'about' %}">About</a></li>
           {% if user.is_authenticated %}
            <li><a class="active " href="{% url 'logout' %}">Log Out</a></li>
            {% else %}
            <li><a class="active " href="{% url 'login' %}">Log In</a></li>
           {% endif %}
        </ul>

...

为了注销,我所做的就是在base.html中添加'href="{% url 'logout' %}"',据我所知,views.py中不需要任何代码。 .我错过了什么?


问题出在你的 index 视图中,或者更确切地说,是出在它渲染的模板中。当你在 settings.py 中设置 LOGOUT_REDIRECT_URL = 'index' 时,你告诉 Django 在用户注销后将他们重定向到 index 视图。

你的问题很可能是 index 视图或其模板存在错误,导致空白页。以下是一些需要检查的地方:

  1. 视图错误: 确保你的 index 视图中没有错误。检查你的服务器日志是否有任何错误消息。
  2. 模板错误: 检查你的 index 模板中是否有任何错误。例如,确保你没有使用任何未定义的变量。
  3. 重定向循环: 确保你的 index 视图没有以某种方式将用户重定向回注销页面,从而导致重定向循环。
  4. 缓存问题: 尝试清除你的浏览器缓存或使用不同的浏览器查看问题是否仍然存在。

为了帮助你诊断问题,请尝试在你的 index 视图中添加一些简单的调试信息,例如打印语句或将消息写入日志文件。这将帮助你确定视图是否正在被调用以及是否有任何错误发生。

例如,你可以尝试将以下内容添加到你的 index 视图中:

from django.shortcuts import render

def index(request):
    print("Index view called")  # 添加打印语句以查看视图是否被调用
    return render(request, 'index.html')

检查你的服务器日志以查看是否打印了 "Index view called" 消息。如果没有,则说明存在阻止视图被调用的问题。如果消息被打印,但你仍然看到空白页,则问题出在你的 index.html 模板中。

标签:python,django,logout
From: 78769663

相关文章

  • 用于匹配两个数据列表中的项目的高效数据结构 - python
    我有两个列表,其中一个列表填充ID,另一个列表填充进程名称。多个进程名称可以共享一个ID。我希望能够创建一个可以使用特定ID的数据结构,然后返回与该ID关联的进程列表。我还希望能够使用特定的进程名称并返回与其连接的ID列表。我知道我可以为此创建一个字典,但是I......
  • 有人可以解决我的代码中的问题吗?而且我无法在我的电脑上安装 nsetools。如何在 python
    从nsetools导入Nseimportpandasaspdnse=Nse()all_stock_codes=nse.get_stock_codes()companies_with_low_pe=[]对于all_stock_codes中的代码:如果代码=='符号':继续尝试:stock_quote=nse.get_quote(代码)pe_ratio=stock_quote.get('priceT......
  • 将 python 脚本的 stdin 重定向到 fifo 会导致 RuntimeError: input():lost sys.stdin
    我有这个python脚本,它的作用是充当服务器,它从重定向到fifo的stdin读取命令:test.py:whileTrue:try:line=input()exceptEOFError:breakprint(f'Received:{line}')在bash中运行命令:mkfifotestfifotest.py<testfifo......
  • Python/Flask mysql 游标:为什么它不起作用?
    fromflaskimportFlaskfromflask_mysqldbimportMySQLapp=Flask(__name__)app.config['MYSQL_HOST']='localhost'app.config['MYSQL_USER']='root'app.config['MYSQL_PASSWORD']='password'a......
  • Python pandas to_csv 导致 OSError: [Errno 22] 参数无效
    我的代码如下:importpandasaspdimportnumpyasnpdf=pd.read_csv("path/to/my/infile.csv")df=df.sort_values(['distance','time'])df.to_csv("path/to/my/outfile.csv")此代码成功从infile.csv(一个3GBcsv文件)读取数据,对其进行排......
  • 从 python 中的字符串列表中提取 def 定义函数的标签
    我想使用Python中的正常def过程创建函数,并将标签分配给从字符串列表中提取的命名空间。如何实现这一点?这个问题的动机:我正在创建一个与sympy兼容的python函数库,供数学家用于符号计算实验。许多函数需要初始化具有相关标签的多个对象的系统,这些标签分别由用户提供的字......
  • 在 Raspberry Pi 4 上使用 Python 从具有 SPI 连接的 MT6816 磁性编码器读取
    我对这个领域完全陌生,并不真正知道自己在做什么并且需要帮助。我正在尝试使用MT681614位磁性编码器通过RaspberryPi的SPI连接读取绝对角度。我有以下问题:在硬件方面,是否只是简单地连接必要的连接(3.3V、MOSI、MISO、SCK、GND、CE01)?对于编码......
  • PythonW 不运行脚本。严重地
    因此,使用Windows10和Python3.6。我创建了一个.py脚本,它可以使用命令pythonmyscript.py在命令提示符下正常运行,但是当我制作该脚本的精确副本并为其赋予扩展名.pyw,并尝试使用pythonw运行它时命令pythonwmyscript.pyw,什么也没有发生......
  • 如何使用Python和Selenium模拟产品购买以获取库存信息
    我正在开发一项网络抓取服务,主要针对时尚行业。我的目标是提供有关产品的全面数据,包括库存水平。为了实现这一目标,我需要模拟购买以确定每种尺寸的产品的最大可用数量。我一直在使用Python和Selenium进行网络抓取部分,但在准确模拟购买方面面临着挑战检索股票信息的过程。......
  • 连接Python套接字的问题
    当我写“关闭”时,我试图让我的电报机器人关闭计算机。我不想将机器人连接到网站上的托管。我选择我的手机(AndroidRedmiNote10)作为托管。我在上面安装了Termux和Pydroid。我写了两个文件:main到我的电脑,client到我的手机。通过在计算机上运行这两个文件,一切正常。但是,当我在......