繁体   English   中英

无法建立连接,因为目标机器主动拒绝它(Django)

[英]No connection could be made because the target machine actively refused it (Django)

我一直关注Django Book直到第七章,我目前正在搞乱 forms、GET、POST 和所有这些好东西。 有一次,指南让我弄清楚了填写并发送表格后的反应,但是当我发送表格数据时,出现此错误:

error at /contact/
[Errno 10061] No connection could be made because the target machine actively refused itRequest Method: POST
Request URL:    http://127.0.0.1:8000/contact/
Django Version: 1.3
Exception Type: error
Exception Value:    [Errno 10061] No connection could be made because the target machine actively refused it
Exception Location: C:\Python27\lib\socket.py in create_connection, line 571
Python Executable:  C:\Python27\python.exe
Python Version: 2.7.2

换句话说,到目前为止,我还没有遇到任何端口问题。 我刚刚在 Windows 防火墙中明确打开了端口 10061,但从外观上看无济于事。 (更改规则后,我关闭并打开了runserver 。)

我正在运行 Windows 7,我的问题的要点是这个错误消息的确切含义比如何处理它更重要(当然,两者都是可取的)。

编辑:我还在 Windows 防火墙中转发了端口 8000(适用于所有配置文件,TCP),但我仍然得到看起来相同的错误。

我设法找出问题所在(不感谢错误消息)。 事实证明,我需要设置我的电子邮件服务器:

请注意,为了使用 send_mail() 发送电子邮件,您的服务器必须配置为发送邮件,并且必须告知 Django 您的出站电子邮件服务器。 有关详细信息,请参阅http://docs.djangoproject.com/en/dev/topics/email/

我想我很少想到它的含义,但我被指向了指南的方向,事情最终开始点击。

感谢大家提出建议。 这是一条无用的错误信息,我只能假设帮助我的人只知道答案,因为他们经历过完全相同的事情。

我在尝试使用django.core.mail.send_mail遇到此错误。 我只需要这个来完成一些教程。 我不需要它来实际发送邮件。

我的解决方案是将这个变量添加到settings.py

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

它将 email 的内容发送到控制台 output ,考虑到我正在做的事情,这是完美的。

文档: https://docs.djangoproject.com/en/1.7/topics/email/#django.core.mail.backends.smtp.EmailBackend

在 settings.py 中,对于控制台 output,您需要

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

适用于 smtp

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

另请参阅此文档https://docs.djangoproject.com/en/1.6/topics/email/

10061 不是端口号,这是错误号。 您想打开端口 8000。

对于因使用错误端口而遇到相同问题的人,请参阅此答案: 无法建立连接,因为目标机器主动拒绝了它

如果您使用的是 gmail,则必须解锁验证码以启用 Django 为您发送。 https://accounts.google.com/displayunlockcaptcha

我可以通过为我在应用程序中使用的 gmail 帐户解锁验证码来解决我的此类问题。您可以 go 到此链接以解锁验证码。

我希望这会很有用:)

代码尝试连接到http://127.0.0.1:8000/contact/ - 端口 8000 无法访问(防火墙)或没有服务器在运行。

我自己从未使用过 DJango 但从错误来看,没有服务器在端口 8000 侦听(或者某些防火墙/服务器限制阻止了本地主机上的端口 8000)

这可能是一个菜鸟错误,但我遇到了这个错误,因为我试图在基于函数的 View上调用 as_view() 。

错误案例

urlpatterns = [
  path('scratch/echo/', views.scratch_echo.as_view()),
]

工作案例

urlpatterns = [
  path('scratch/echo/', views.scratch_echo),
]

我想我只是从另一个教程中复制粘贴了基于类的视图的设置,而我的服务器停止运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM