how to take input from form and save to database django

 step1: complete your HTML and CSS form

   eg:<form class="Form1" method="post" action="/"> {% csrf_token %}
  <label for="name"></label><br>
  <input type="text" id="name" name="name" placeholder="Name">
  
  <label for="email"></label><br>
  <input type="text" id="email" name="email" placeholder="email">
  <label for="subject"></label><br>
  <input type="text" id="subject" name="subject" placeholder="subject">
  <label for="message"></label><br>
  <input type="text" id="messaeg" name="message" placeholder="message">
  <button type="submit"><i class="fa fa-paper-plane"></i> SEND MESSAGE</button>
</form>

step2:create models for your form in models.py   these will represent your data to database

   eg: class Message(models.Model):
    name = models.CharField(max_length=30)
    email = models.EmailField(max_length=30)
    subject=models.CharField(max_length=50)
    message=models.CharField(max_length=500)
    def __str__(self):
        return self.name

step 3: register your model in admin.py

 eg: from django.contrib import admin

from .models import Message



# Register your models here.

admin.site.register(Message)

step4: create makemigrations in terminal

 eg: python manage.py makemigrations 

step5: migrate

 rg: python manage.py migrate 

step6: create superuser if already created leave it

         eg: python manage.py createsuperuser


step7: go to views .py and fetch the data from form and create variables for each name and load the variables data

recently created into models by importing created model and save

eg:from . models import Message
def index(request):
if request.method=="POST":
name=request.POST.get('name')
email=request.POST.get('email')
subject=request.POST.get('subject')
message=request.POST.get('message')
message=Message(name=name,email=email,subject=subject,message=message)
message.save() return render(request,'home.html') 



 

Comments