错误/ contact / - [Errno 111]连接被拒绝(在djangobook中,第7章:表格)

时间:2015-09-28 14:29:47

标签: python django

从djangobook(第7章 - 表格)中的示例学习django时出现此错误。

完整错误: 错误/ contact /

[Errno 111]拒绝连接

请求方法:POST 请求网址:http://localhost:8000/contact/ Django版本:1.8.4 异常类型:错误 例外值:

[Errno 111]拒绝连接

异常位置:/usr/lib/python2.7/socket.py在create_connection中,第571行 Python可执行文件:/ usr / bin / python Python版本:2.7.6

这是代码:

views.py

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            send_mail(
                cd['subject'],
                cd['message'],
                cd.get('email', 'noreply@example.com'),
                ['siteowner@example.com'],
            )
            return HttpResponseRedirect('/contact/thanks/')
    else:
        form = ContactForm()
    return render(request, 'contact_form.html', {'form': form})

请解决此错误,非常感谢

1 个答案:

答案 0 :(得分:3)

您似乎尝试在没有运行电子邮件服务器的情况下发送电子邮件,或者没有将Django配置为指向它。

如果您只是在本地进行测试,Django documentation会提出一些建议。

你可以运行

python -m smtpd -n -c DebuggingServer localhost:1025

然后将Django的EMAIL_HOST设置配置为" localhost"和EMAIL_PORT到" 1025"

# in your settings.py
EMAIL_HOST = "localhost"
EMAIL_PORT = 1025

或将您的EMAIL_BACKEND设置设为

# in your settings.py
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

查看生成的电子邮件输出到您的控制台。