从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})
请解决此错误,非常感谢
答案 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'
查看生成的电子邮件输出到您的控制台。