【发布时间】:2019-08-19 11:29:40
【问题描述】:
我正在尝试建立一个基本的论坛站点供我的同事使用。问题是当我尝试登录该站点时,没有发送 POST 请求(由终端显示)并且整个网站变得无响应。事实上,它位于另一个浏览器选项卡中,在我输入时无限缓冲。
我按照 Corey Schafer 的 Django 教程为网站打下了基础,因为我从来没有用 Django 做过任何事情。我完成了教程系列,并且该网站功能齐全(减去密码重置电子邮件)。完成教程后,我通过 django-taggit 在 post-form 中添加了标记功能。
我不得不等到 IT 负责人可以将一些文件输入公司网站才能访问电子邮件(通过 SendGrid),但我终于能够向自己发送一封密码重置电子邮件。我成功地重置了我的密码,这就是事情开始出错的地方。
我想改回我的密码,所以我再次完成了这个过程,但是这次当我按下密码重置页面上的“发送电子邮件”按钮时,缓冲图标(在 Chrome 上)开始倒退并不会停止。发生这种情况时,我没有检查我的控制台。无论哪种方式,我都试图通过单击导航栏上的链接转到网站上的其他地方,但所有链接都没有响应。刷新所做的只是清除表格。
现在,每次我尝试发送 POST 请求时,都会发生这种情况,并且整个站点都无法使用。我无法登录、发布、更改密码或创建帐户。
我已尝试通过清除浏览器缓存、刷新数据库并检查控制台以查看是否出现错误来解决此问题。控制台不显示任何错误。事实上,它只显示发送的最后一个 GET 请求。在登录的情况下,最后一个请求说:
[2019 年 8 月 19 日] "GET /login/ HTTP/1.1" 200 5214
请注意,我大约在这个时候尝试开始学习 SQL,并且我在同一台计算机上安装了 MySQL。会不会与被占用的端口有关?我正在处理 localhost:8000,如果有帮助的话。
我需要弄清楚为什么没有发送 POST 请求,但我不知道是什么导致了这个问题,因为没有错误或异常。
编辑 *忘记添加:
我也尝试过重新启动服务器并检查迁移,但这些操作都没有任何效果。我还尝试创建一个新用户,但又失败了。
我还打开了一个预先存在且正常运行的代码版本,但即使这样也失败了,所以这可能是硬件问题。
编辑#2:
这是登录页面的 HTML,我正在扩展一个不影响登录表单的基本 HTML 模板,并且我还按照 Corey Schafer 的教程使用 Crispy Forms。这是 HTML:
<div class='content-section'>
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">
Team Member Login
</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Log In</button>
<small class="text-muted ml-2">
<a href="{% url 'password_reset' %}">Forgot Password?</a>
</small>
</div>
</form>
</div>
编辑#3:
这就是视图的配置方式...
path('login/',
auth_views.LoginView.as_view(template_name='users/login.html'),
name='login')
编辑#4:
我能够成功注册一个新用户,我什至能够从登录页面登录他们,但是在我再次尝试将他们注销并尝试重新登录后,问题再次出现。我的控制台有一个 POST 请求。 这是控制台输出:
System check identified no issues (0 silenced).
August 19, 2019 - 15:57:16
Django version 2.2.4, using settings 'django_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[19/Aug/2019 15:57:24] "GET / HTTP/1.1" 200 3890
Not Found: /favicon.ico
[19/Aug/2019 15:57:26] "GET /favicon.ico HTTP/1.1" 404 5049
[19/Aug/2019 15:57:30] "GET /register/ HTTP/1.1" 200 6525
[19/Aug/2019 15:57:47] "POST /register/ HTTP/1.1" 302 0
[19/Aug/2019 15:57:47] "GET /login/ HTTP/1.1" 200 5389
[19/Aug/2019 15:57:54] "POST /login/ HTTP/1.1" 302 0
[19/Aug/2019 15:57:54] "GET / HTTP/1.1" 200 3979
[19/Aug/2019 15:57:59] "GET /profile/ HTTP/1.1" 200 5288
[19/Aug/2019 15:58:04] "GET /logout/ HTTP/1.1" 200 4055
【问题讨论】:
-
您必须向我们展示一些代码,否则很难提供帮助。
-
服务器日志中是否显示任何错误?
-
@Cleb,老实说,我不知道要显示什么代码。没有出现任何错误,并且该站点的结构中有多个文件和表单。我能想到的最好的补充是该站点与 Corey Schafer 的教程完全相同(youtube.com/…)
-
@MaartenDev,我如何访问服务器日志?
-
使用您的 chrome 开发工具(尤其是“网络”选项卡)确保这不是您的浏览器/计算机/dns 而不是您的 django 应用程序的问题。检查是否在此处发送 POST 请求。如果您的 django 控制台没有显示任何内容,那么它与您的 django 服务器无关,而是与您的计算机有关。