Python 我如何发送电子邮件,创建确认链接以单击它?
models.py:Python 我如何发送电子邮件,创建确认链接以单击它?,python,django,registration,confirm,email-confirmation,Python,Django,Registration,Confirm,Email Confirmation,models.py: class Users(models.Model): username = models.CharField(max_length=255) slug = models.CharField(max_length=255, default='0') password = models.CharField(max_length=300) passwordrepeat = models.CharField('Repeat Password', ma
class Users(models.Model):
username = models.CharField(max_length=255)
slug = models.CharField(max_length=255, default='0')
password = models.CharField(max_length=300)
passwordrepeat = models.CharField('Repeat Password', max_length=300)
password_token = models.CharField(max_length=300, default='0')
email = models.CharField(max_length=255)
email_verified = models.BooleanField(default=False)
email_token = models.CharField(max_length=255)
email_token_expiry = models.DateTimeField()
tos = models.BooleanField(default=False)
active = models.BooleanField(default=False)
last_login = models.DateTimeField(auto_now_add=True)
last_action = models.DateTimeField(auto_now_add=True)
is_admin = models.BooleanField(default=False)
role = models.CharField(max_length=255, default='0')
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.username
class UsersModelForm(forms.ModelForm):
class Meta:
model = Users
fields = ('username', 'password', 'passwordrepeat', 'email')
widgets = {
'password' : PasswordInput(),
'passwordrepeat' : PasswordInput(),
}
views.py:
def register(request):
flag = True
possible = '0123456789abcdefghijklmnopqrstuvwxyz'
token = ''
current_datetime = datetime.datetime.now()
user = UsersModelForm()
if request.method == 'POST':
userf = UsersModelForm(request.POST)
username = userf.data['username']
password = userf.data['password']
passwordrepeat = userf.data['passwordrepeat']
email = userf.data['email']
password = bcrypt.hashpw(password,bcrypt.gensalt())
passwordrepeat = bcrypt.hashpw(passwordrepeat,bcrypt.gensalt())
userf.data['password'] = password
userf.data['passwordrepeat'] = passwordrepeat
if password != passwordrepeat:
flag = False
passVariable = {'user':user, 'flag': False}
return render_to_response('register.html', passVariable, context_instance=RequestContext(request))
elif password == passwordrepeat:
for i in range(1,10):
temp = random.choice(possible)
token = token + temp
print token
if userf.is_valid():
check = userf.save(commit=False)
check.email_token = token
check.email_token_expiry = current_datetime + timedelta(1)
check.save()
return HttpResponseRedirect('/')
else:
return render_to_response('register.html', {"user": user, 'flag': True}, context_instance=RequestContext(request))
将数据保存到表中后,我需要向用户发送该令牌以确认注册的电子邮件地址。我该怎么做
如果有人帮我修复它,我将不胜感激。使用,它附带所有这些逻辑和更多,免费。请注意,从一些开始更容易。使用,它附带所有这些逻辑和更多,免费。请注意,从以下文档开始更容易。
:-来自
:-我不会使用django注册。我想做一个定制的。好的。如果你想重新发明轮子,你也可以重新编码ORM。Django对所有已经有用的东西都很无聊。你说的ORM是什么意思?你能发布那个ORM代码的链接吗?你在说这个吗,我不想重新编码,我想写我自己的注册/授权。这是一个讽刺的评论。我不会使用django注册。我想做一个定制的。好的。如果你想重新发明轮子,你也可以重新编码ORM。Django对所有已经有用的东西都很无聊。你说的ORM是什么意思?你能发布那个ORM代码的链接吗?你在说这个吗,我不想重新编码,我想写我自己的注册/认证。这是一个讽刺的评论。我需要发送消息创建一个与令牌的链接。我如何发送带有该链接的电子邮件?我想你需要仔细阅读上面的链接。。。上面的例子为您提供了所需的一切。您需要从所创建的对象中提取令牌,或者保留对它的引用,然后将其插入到主体中。我怀疑您真正想要的是django注册,因为它的适应性非常强,正如下面的答案所示。我需要发送消息,创建一个带有令牌的链接。我如何发送带有该链接的电子邮件?我想你需要仔细阅读上面的链接。。。上面的例子为您提供了所需的一切。您需要从所创建的对象中提取令牌,或者保留对它的引用,然后将其插入到主体中。我怀疑您真正想要的是django注册,因为它具有很强的适应性,正如下面的答案所示。
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.', 'from@example.com',
['to@example.com'], fail_silently=False)