Tôi muốn tạo biểu mẫu liên hệ trên trang web của mình. Tôi có thể tìm thấy các hình thức e-mail PHP ở khắp mọi nơi, nhưng không có ví dụ Django. Tôi không có ý tưởng làm thế nào để làm điều đó bản thân mình, vì vậy tôi hỏi nếu có bất cứ ai có thể cho tôi biết từ đầu - làm thế nào để làm cho một hình thức liên lạc e-mail trên trang web bằng cách sử dụng Django?Ví dụ về mẫu e-mail Python Django
9
A
Trả lời
29
Một ví dụ đơn giản có thể là:
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, ['[email protected]'])
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>
+3
Cảm ơn, đó là những thứ khá thú vị ở đây! – Nhor
1
Nếu đơn giản là quan trọng, Formspree có thể là một sự thay thế. Họ làm cho nó siêu dễ dàng.
Bạn chỉ cần chèn một cái gì đó như thế này trong mã của bạn:
<form action="https://formspree.io/[email protected]"
method="POST">
<input type="text" name="name">
<input type="email" name="_replyto">
<textarea name="message"></textarea>
<input type="submit" value="Send">
</form>
Sau đó, bạn xác nhận các e-mail, và bạn đã sẵn sàng để đi.
Để biết thêm thông tin, this video giải thích cách thực hiện.
Các vấn đề liên quan
- 1. chuyển các mẫu ví dụ khác để tạo mẫu email
- 2. Ví dụ về mẫu tạo OpenCV
- 3. Ví dụ hay về Mẫu MVVM
- 4. Ví dụ về trang trí Python
- 5. Django - Cách nhận url quản trị từ ví dụ mẫu
- 6. AWS ví dụ mẫu polly trong python?
- 7. Ví dụ về subclassing string.Template bằng Python?
- 8. Ví dụ về tìm chuỗi trong Python
- 9. Ví dụ về lượng tử Python?
- 10. Ví dụ về đọc từ điển Python
- 11. Django: Ví dụ về quyền/tài liệu dựa trên nhóm?
- 12. Mẫu PHP - Dịch vụ/Mẫu/Mapper/Ví dụ về Dao?
- 13. Đi mẫu ví dụ
- 14. Ví dụ về MVC ViewModel
- 15. Ví dụ về các ví dụ điển hình
- 16. Ví dụ về Django và Celery: Nhiệm vụ định kỳ
- 17. Ví dụ: Mẫu ref
- 18. Ví dụ về Winsock?
- 19. Ví dụ về JGraphT
- 20. Ví dụ về D.ccurl
- 21. Ví dụ về MultiSelectListPreference
- 22. Ví dụ về pysmb
- 23. Ví dụ về lemmatization OpenNLP
- 24. wxPython Ví dụ về WebView
- 25. Ví dụ về Java GAE DeferredTask?
- 26. Oauth cho ví dụ về Google API sử dụng Python/Django
- 27. Vật liệu góc 0.9.7 Ví dụ về xác thực mẫu
- 28. Ứng dụng ví dụ về GUI/ứng dụng mẫu nào?
- 29. Ví dụ về Scala dispatch
- 30. Ví dụ mẫu C++ variadic Ví dụ bất thường
Bạn có thể sử dụng mã trong github này: [https://github.com/jezdez/django-contact-form](https://github.com/jezdez/django-contact-form) hoặc The a xem [ở đây] (http://www.pydanny.com/simple-django-email-form-using-cbv.html) để biết ví dụ đơn giản. –