【发布时间】:2016-11-27 12:05:24
【问题描述】:
我对使用 Python 进行 Web 开发还很陌生。 我正在使用以下示例(在本网站的一些问题中给出)python 和 HTML 文件,以便使用 Python 3.5.2 创建 django 表单:
urls.py
from django.conf.urls import patterns, url
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>
但是,每次我运行 html 文件时,我都无法在页面上获取表单。相反,我得到以下屏幕截图:
可能是什么问题? 感谢您的帮助!
【问题讨论】:
-
这不是关于表单的问题,而是对如何使用Django的基本误解。你应该去学习 Django 入门教程。
-
我支持这个。 Django 教程非常好,可以让您更好地了解 Django 的工作原理。
-
我急于完成一个项目,所以我应该错过了一些东西。我将再次阅读教程。感谢您的帮助!
标签: python html django forms python-3.5