Home:ALL Converter>Python Django Forms

Python Django Forms

Ask Time:2016-11-27T20:05:24         Author:furbymely

Json Formatter

I'm quite new for the web development using Python. I am using the following example (given in some of the questions in this website) python and HTML files in order to create a django form with Python 3.5.2:

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, ['[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>

However, everytime I run the html file I can't get the form on the page. Instead I get the following screenshot:

Screenshot

What can be the problem? Thanks for the help!

Author:furbymely,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/40828737/python-django-forms
Matthew Daly :

You can't run the HTML file on its own. You need to run the Django development server using this command:\n\npython manage.py runserver\n\n\nYou should then be able to see the form at http://localhost:8000/email/",
2016-11-27T12:08:12
yy