17.5 Views in Django: Working with Forms

17.5 Views in Django: Working with Forms

Views in Django are an essential part of developing web applications with the Django framework. They are responsible for processing HTTP requests and providing HTTP responses. One of the most common functions of views is working with forms.

Forms are a fundamental part of web applications. They allow users to interact with the application by sending data that can be processed by the server. In Django, working with forms is done primarily through views.

Creating Forms with Django

Django provides a powerful abstraction for working with forms: the Form class. This class allows you to define the form fields, their validations and how they should be rendered.

To create a form with Django, you must subclass Form and define the fields you want on the form. Each field is an instance of a Field class, which defines the field's data type and how it should be validated and rendered.

Example Form

    
    from django import forms

    class ContactForm(forms.Form):
        name = forms.CharField(max_length=100)
        email = forms.EmailField()
        message = forms.CharField(widget=forms.Textarea)
    
    

Working with Forms in Views

Once you define a form, you can use it in a view to process HTTP requests. The view must check whether the request is a POST or a GET. If it is a POST, the view must create an instance of the form with the POST data, validate the form and, if valid, process the data. If it's a GET, the view should create an empty instance of the form and render it.

Example of View with Form

    
    from django.shortcuts import render
    from .forms import ContactForm

    def contact(request):
        if request.method == 'POST':
            form = ContactForm(request.POST)
            if form.is_valid():
                # process the data
                pass
        else:
            form = ContactForm()
        return render(request, 'contact.html', {'form': form})
    
    

Rendering Forms

Django provides several ways to render forms. You can render the form as a whole, render individual fields, or manually render the form. Form rendering is done in the template, not the view.

Example Form Rendering

    
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Submit">
    </form>
    
    

Working with forms in Django can seem complex at first glance, but once you understand the workflow, you'll find that Django provides a very powerful and flexible way of dealing with forms.

Conclusion

Views in Django play a crucial role in handling forms. They allow you to process form data, validate it, and return appropriate responses to the user. With practice, you'll become more comfortable working with forms and views in Django.

Now answer the exercise about the content:

_What is the function of Views in Django in the development of web applications?

You are right! Congratulations, now go to the next page

You missed! Try again.

Article image Views in Django: Data Validation

Next page of the Free Ebook:

97Views in Django: Data Validation

3 minutes

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text