python+django实现的简单的表单验证代码

2022-05-03 00:00:00 代码 表单 验证

python+django实现的简单的表单验证代码,带有html页面,表单类,和view类的全部代码。
html代码

<html>
<head>
  <title>Form validation example</title>
  <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/bootstrap.css">
</head>
<body>
  <div class="col-sm-8">
    <h2>Form validation example</h2>
    {% if form.errors %}
    <div class="text-danger">Please correct the error{{ form.errors|pluralize }} below.</div>
    {% endif %}
    <p>
    <div class="form-horizontal">
      <form action="" method="post" role="form">{% csrf_token %}
        <div class="form-group row {% if form.subject.errors %}has-error{% endif %}">
           <label for="id_subject" class="col-sm-3 control-label">Email subject:</label>
           <div class="col-lg-5">
            {{ form.subject }}
            {% if form.subject.errors %}
              <span class="help-block">
                {% for error in form.subject.errors %}{{ error }}{% endfor %}
              </span>
            {% endif %}
          </div>
        </div>
        <div class="form-group row {% if form.email.errors %}has-error{% endif %}">
          <label for="id_sender" class="col-sm-3 control-label">Email address:</label>
          <div class="col-lg-5">
          {{ form.email }}
            {% if form.email.errors %}
              <span class="help-block">
                {% for error in form.email.errors %}{{ error }}{% endfor %}
              </span>
            {% endif %}
          </div>
        </div>
        <div class="form-group row {% if form.message.errors %}has-error{% endif %}">
          <label for="id_message" class="col-sm-3 control-label">Message:</label>
          <div class="col-lg-5">
            {{ form.message }}
            {% if form.message.errors %}
              <span class="help-block">
                {% for error in form.message.errors %}{{ error }}{% endfor %}
              </span>
            {% endif %}
          </div>
        </div>
        <div class="form-group row">
          <div class="col-sm-5 col-sm-offset-3">
            <input type="submit" value="Validate form" class="btn btn-primary" />
          </div>
        </div>
      </form>
    </div>
  </div>
</body>
</html>

forms.py

from django import forms
class ContactForm(forms.Form):
  """
  define a contact form class
  """
  # this will be rendered like
  # <input class="form-control" id="id_subject" name="subject" size="48" type="text">
  # valid if not empty
  subject = forms.CharField(widget=forms.TextInput(attrs={'size':'48', 'class':'form-control'}))
  # A CharField that checks that the value is a valid email address.
  email = forms.EmailField(widget=forms.TextInput(attrs={'size':'48', 'class':'form-control'}))
  message = forms.CharField(widget=forms.Textarea(attrs={'cols':50, 'rows': 5 , 'class':'form-control'}))

views.py

from django.shortcuts import render
from .forms import ContactForm
def contact(request):
  if request.method == 'POST':
    # get data from POST request to contactform
    # https://www.pidancode.com
    form = ContactForm(request.POST)
  else:
    form = ContactForm()
  data = {
    'form': form,
  }
  return render(request, 'contact_form.html', data)

相关文章