Python Django的电子邮件表单示例 [英] Python Django e-mail form example
本文介绍了Python Django的电子邮件表单示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
解决方案
一个简单的例子可以是:
urls.py
from django.conf.urls import patterns,url
from yourapp import views
urlpatterns = pattern(
'',
url(r'^ email / $',
views.email,
name ='email'
),
url(r'^ thanks / $',
views.thanks,
name ='thanks'
),
)
forms.py
$ $ $ $ $ $ $ $ $ $ $ $ $ $
$ b from_email = forms.EmailField(required = True)
subject = forms.CharField(required = True)
message = forms.CharField(widget = forms.Textarea)
views.py
来自django.core.mail的django.core.mail导入send_mail,来自django.http的BadHeaderError
import HttpResponse,HttpResponseRedirect
from django.shortcuts import render,redirect
from yourapp.forms import ContactForm
def email(request):
if request.method =='GET':
form = ContactForm()
else:
form = ContactForm (request.POST)
if form.is_valid():
subject = form.cleaned_data ['subject']
from_email = form.cleaned_data ['from_email']
message = form.cleaned_data ['message']
try:
send_mail(subject,message,from_email,['admin@example.com'])
除了BadHeaderError:
return HttpResponse '找不到标题')
return redirect('thanks')
return render(请求,yourapp / email.html, {'form':form})
def感谢(请求):
返回HttpResponse('谢谢你的信息')
/ pre>
email.html
code>< form method =post>
{%csrf_token%}
{{form}}
< div class =form-actions>
< button type =submit>发送< / button>
< / div>
< / form>
I wanted to make a contact form on my website. I can find PHP e-mail forms everywhere, but there are no Django examples. I have no idea how to do it myself, so I'm asking if there is anyone who could tell me from scratch - how to make an e-mail contact form on website using Django?
解决方案A simple example could be:
urls.py
from django.conf.urls import patterns, url from yourapp import views urlpatterns = patterns( '', url(r'^email/$', views.email, name='email' ), url(r'^thanks/$', views.thanks, name='thanks' ), )
forms.py
from django import forms class ContactForm(forms.Form): from_email = forms.EmailField(required=True) subject = forms.CharField(required=True) message = forms.CharField(widget=forms.Textarea)
views.py
from django.core.mail import send_mail, BadHeaderError from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render, redirect from yourapp.forms import ContactForm def email(request): if request.method == 'GET': form = ContactForm() else: form = ContactForm(request.POST) if form.is_valid(): subject = form.cleaned_data['subject'] from_email = form.cleaned_data['from_email'] message = form.cleaned_data['message'] try: send_mail(subject, message, from_email, ['admin@example.com']) except BadHeaderError: return HttpResponse('Invalid header found.') return redirect('thanks') return render(request, "yourapp/email.html", {'form': form}) def thanks(request): return HttpResponse('Thank you for your message.')
email.html
<form method="post"> {% csrf_token %} {{ form }} <div class="form-actions"> <button type="submit">Send</button> </div> </form>
这篇关于Python Django的电子邮件表单示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文