无法连接,目标机器主动拒绝了连接(Django)

15 投票
8 回答
44845 浏览
提问于 2025-04-16 22:01

我一直在跟着Django书学习,到了第七章,现在正在研究表单、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),但我仍然遇到看起来像是同样的错误。

8 个回答

2

10061 不是端口号,而是错误号。你需要打开的是 8000 端口。

可以看看这个回答,里面有一个人遇到了同样的问题,因为他们使用了错误的端口:无法连接,因为目标机器主动拒绝了连接

11

我在使用 django.core.mail.send_mail 的时候遇到了这个错误。我只是想通过一些教程来练习,并不需要真的发送邮件。

对我来说,解决这个问题的方法是在 settings.py 文件中添加一个变量:

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

这样做会把邮件的内容输出到 控制台,这正好符合我现在的需求。

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

30

我终于搞清楚问题出在哪里了(这可不是错误信息的功劳)。原来,我需要设置我的邮件服务器:

注意,要使用send_mail()发送邮件,你的服务器必须配置好能发送邮件,并且Django需要知道你的发件邮件服务器是什么。具体的内容可以参考这个链接

我想我之前对这个要求没太在意,但后来我找到了这个指南,慢慢地我开始明白了。

感谢每一个给我提供建议的人。那个错误信息真是没用,我只能猜测那些帮助我的人之所以知道答案,是因为他们也经历过同样的事情。

撰写回答