我跟随Django Book直到第七章,我正在搞乱表格,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),但我仍然看到同样的错误。
答案 0 :(得分:24)
我设法找出问题所在(不,谢谢错误信息)。事实证明,我需要设置我的电子邮件服务器:
请注意,为了使用send_mail()发送电子邮件,必须将服务器配置为发送邮件,并且必须告知Django您的出站电子邮件服务器。有关详细信息,请参阅http://docs.djangoproject.com/en/dev/topics/email/。
我想我对它的含义几乎一无所知,但是我被指向this指南的方向,最终开始点击。
感谢所有人提出建议。这是一个无用的错误信息,我只能假设帮助我的人只知道答案,因为他们经历过完全相同的事情。
答案 1 :(得分:8)
我在尝试使用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
答案 2 :(得分:2)
10061不是端口号,这是错误号。您想要打开端口8000.
对于因使用错误端口而遇到同样问题的人,请参阅此答案:No connection could be made because the target machine actively refused it
答案 3 :(得分:1)
在settings.py中,对于控制台输出,您需要
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
对于smtp
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
答案 4 :(得分:0)
代码尝试连接到http://127.0.0.1:8000/contact/ - 端口8000无法访问(防火墙)或没有服务器正在运行。
答案 5 :(得分:0)
我自己从未使用过DJango但是从错误判断,没有服务器在端口8000监听(或者某些防火墙/服务器限制阻止了本地主机上的端口8000)
答案 6 :(得分:0)
如果您使用的是Gmail,则需要解锁验证码才能启用 Django将为您发送。
https://accounts.google.com/displayunlockcaptcha
我可以通过解锁我在app中使用的gmail帐户的Captcha来解决此类问题。您可以在其他地方使用此link解锁验证码。
我希望这对gonn有用:)