creating forms in django - error in output

I have the following code in various places to attempt to produce a form in Django that takes data and writes it to the database
views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpResponseRedirect

from .forms import TeacherSignup

"""def teachers(request):
    return render(request,'teachers/teachers.html')
"""
def teachers(request):
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = TeacherSignup(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect('/thanks/')

    # if a GET (or any other method) we'll create a blank form
    else:
form = TeacherSignup()

    return render(request, 'teachers/teachers.html', {'form': form})

teachers.html (this is the html page that contains the form)
<form action="/teachers/" method="post" style="border:1px solid #ccc">
  {% csrf_token %}
  {{ form }}
  <div class="container">
    <label><b>Email</b></label>
    <input id="email" input type="text" placeholder="Enter Email" name="email" required>

    <label><b>Centre/School Name</b></label>
    <input id="school_name" input type="text" placeholder="Enter School or Centre Name" name="school_name" required>

    <label><b>Password</b></label>
    <input id="password" input type="password" placeholder="Enter Password" name="password" required>

    <label><b>Repeat Password</b></label>
    <input id="password_repeat" input type="password" placeholder="Repeat Password" name="password_repeat" required>
    <input type="checkbox" checked="checked"> Remember me
    <p>By creating an account you agree to our <a href="#">Terms & Privacy</a>.</p>

    <div class="clearfix">
      <button type="button" class="cancelbtn">Cancel</button>
      <button type="submit" class="signupbtn">Sign Up</button>
    </div>
  </div>
</form>

</body>
</html>

forms.py
from django import forms

class TeacherSignup(forms.Form):
    email=forms.CharField(label='email',max_length=100)
    school_name=forms.CharField(label='school_name',max_length=100)
    password=forms.CharField(label='password',max_length=100)
    password_repeat=forms.CharField(label='password_repeat',max_length=100)  

On running the server however, it produces TWO forms: The form I've created in the html and the one presumably created in the forms.py.
How do I use the form in teachers.html (which is at the end of the page) and use this created form to write data to the database, or does Django require that I created it using the forms.py?
A detailed explanation would be appreciated, with examples if possible.

In your template you can render field by field of your form
Something like this in teachers.html
<form action="/teachers/" method="post" style="border:1px solid #ccc">
  {% csrf_token %}
  <div class="container">
    <label><b>Email</b></label>
    {{ form.email }}

    <label><b>Centre/School Name</b></label>
    {{ form.school_name }}

    <div class="clearfix">
      <button type="button" class="cancelbtn">Cancel</button>
      <button type="submit" class="signupbtn">Sign Up</button>
    </div>
  </div>
</form>

and do the same thing for the rest
if you want to add placeholder attribute you need to add widget param to your fields and the same if you want that your passwords fields could hide text
forms.py
from django import forms

class TeacherSignup(forms.Form):
    email=forms.CharField(label='email',max_length=100, widget=forms.TextInput(attrs={'placeholder': 'Enter Email'})
    school_name=forms.CharField(label='school_name',max_length=100, widget=forms.TextInput(attrs={'placeholder': 'Enter School or Centre Name'})
    password=forms.CharField(label='password',max_length=100, widget=forms.PasswordInput)
    password_repeat=forms.CharField(label='password_repeat',max_length=100, widget=forms.PasswordInput)