A Django form declares fields with their validation, either manually with forms.Form, or from a model with ModelForm. It renders the HTML, checks the data with is_valid() and exposes the cleaned values in cleaned_data. Errors are passed back to the template.
Example
form = ArticleForm(request.POST)
if form.is_valid():
form.save()