gpt4 book ai didi

python - 在 Django 中设置代理

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:16 25 4
gpt4 key购买 nike

我正在尝试使用 django.core.mail.send_mail() 发送电子邮件。但是,当我尝试提交表单时出现以下错误。

这是我遇到的错误:

Request Method: POST
Request URL: http://127.0.0.1:8000/contact/

Django Version: 1.8.10
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'newsletter',
'Contact')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')


Traceback:
File "/home/sumit/Desktop/Home/Django/local/lib/python2.7/site-packages/Django-1.8.10-py2.7.egg/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/sumit/Desktop/Home/Django/src/Contact/views.py" in contact
25. fail_silently=False
File "/home/sumit/Desktop/Home/Django/local/lib/python2.7/site-packages/Django-1.8.10-py2.7.egg/django/core/mail/__init__.py" in send_mail
62. return mail.send()
File "/home/sumit/Desktop/Home/Django/local/lib/python2.7/site-packages/Django-1.8.10-py2.7.egg/django/core/mail/message.py" in send
303. return self.get_connection(fail_silently).send_messages([self])
File "/home/sumit/Desktop/Home/Django/local/lib/python2.7/site-packages/Django-1.8.10-py2.7.egg/django/core/mail/backends/smtp.py" in send_messages
100. new_conn_created = self.open()
File "/home/sumit/Desktop/Home/Django/local/lib/python2.7/site-packages/Django-1.8.10-py2.7.egg/django/core/mail/backends/smtp.py" in open
58. self.connection = connection_class(self.host, self.port, **connection_params)
File "/usr/lib/python2.7/smtplib.py" in __init__
256. (code, msg) = self.connect(host, port)
File "/usr/lib/python2.7/smtplib.py" in connect
316. self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python2.7/smtplib.py" in _get_socket
291. return socket.create_connection((host, port), timeout)
File "/usr/lib/python2.7/socket.py" in create_connection
553. for res in getaddrinfo(host, port, 0, SOCK_STREAM):

Exception Type: gaierror at /contact/
Exception Value: [Errno -2] Name or service not known

这是我的 views.py 文件。

from django.shortcuts import render
from .forms import ContactUsForm
from django.core.mail import send_mail
from django.conf import settings

def contact(request):
form = ContactUsForm(request.POST or None)
context = {
"title" : "Contact",
"form" : form,
}
if form.is_valid():
form_email = form.cleaned_data.get("email")
form_full_name = form.cleaned_data.get("full_name")

subject = "Sent via django"
from_email = settings.EMAIL_HOST_USER
to_email = [form_email]
contact_message = "Thank you %s " %(form_full_name)

send_mail(subject,
contact_message,
from_email,
to_email,
fail_silently=False
)
context = {
"title" : "Thank you for your feedback ! "
}
form.save()
return render(request, "contact.html", context)

表单.py:

from django import forms
from .models import ContactUs

class ContactUsForm(forms.ModelForm):
class Meta:
model = ContactUs
fields = ["full_name", "email", "message"]

模型.py

from django.db import models

# Create your models here.
class ContactUs(models.Model):
full_name = models.CharField(max_length=120, blank=True)
email = models.EmailField()
message = models.CharField(max_length=100, blank=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)

def __unicode__(self):
return self.email

我在我的终端中设置了代理变量:

export https_proxy="https://username:password@myproxy:myport"
export http_proxy="http://username:password@myproxy:myport"
export socks_proxy="socks://username:password@myproxy:myport"
export ftp_proxy="ftp://username:password@myproxy:myport"

如何修复此错误?请帮忙。

最佳答案

你有没有在settings.py文件中设置需要的参数?

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

它的 gaierror 在你的 HOST 参数中应该是:

HOST = ' ' (without space)

Don't use with space HOST = ' '

关于python - 在 Django 中设置代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35846023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com