【问题标题】:Python Django FormsPython Django 表单
【发布时间】: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 文件时,我都无法在页面上获取表单。相反,我得到以下屏幕截图:

Screenshot

可能是什么问题? 感谢您的帮助!

【问题讨论】:

  • 这不是关于表单的问题,而是对如何使用Django的基本误解。你应该去学习 Django 入门教程。
  • 我支持这个。 Django 教程非常好,可以让您更好地了解 Django 的工作原理。
  • 我急于完成一个项目,所以我应该错过了一些东西。我将再次阅读教程。感谢您的帮助!

标签: python html django forms python-3.5


【解决方案1】:

您不能单独运行 HTML 文件。您需要使用以下命令运行 Django 开发服务器:

python manage.py runserver

然后您应该可以在http://localhost:8000/email/ 看到该表格

【讨论】:

    【解决方案2】:

    第一个 Django 教程提到要测试您的应用程序,您需要通过以下命令启动开发服务器:

    $ python manage.py runserver
    

    查看此处了解更多详情The development server

    【讨论】:

      猜你喜欢
      • 2021-05-16
      • 2020-11-13
      • 2018-01-19
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 2011-07-23
      • 2017-06-14
      相关资源
      最近更新 更多