Django provides a single view method to render the template using the GET method and POST method to write code after form submission.
It is the standard approach to write Django Code.
Syntax to write load template and logic using a single file.
def Methodname(request):
if request.method=="POST":
Write Business Code
return render(request,"appname/filename",{'key':output})
return render(request,"appname/filename")
Now I am explaining the example of the SI Calculation App?
Step1st:- Create APP using python manage.py startapp siapp
Step2nd:- go into settings.py and enter appname
Step3rd:- go to project urls.py and create app urls
step4th:- create urls.py under app and define method urls
from django.urls import path
from . import views
urlpatterns=[
path('',views.index,name='index')
]
step5th:-
create view method under views.py
from django.shortcuts import render
def index(request):
if request.method=="POST":
if request.POST.get("btnsubmit"):
p=request.POST["txtp"]
r=request.POST["txtr"]
t=request.POST["txtt"]
si=(float(p)*float(r)*float(t))/100
return render(request,"siapp/index.html",{'key':'result is '+str(si),'p':p,'r':r,'t':t})
else:
return render(request,"siapp/index.html",{'key':'','p':'','r':'','t':''})
return render(request,"siapp/index.html")
step6:-
create HTML file under the templates directory
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="" method="post">
{% csrf_token %}
<br>
<input type="text" name="txtp" placeholder="Enter Principal" value="{{p}}" />
<br><br>
<input type="text" name="txtr" placeholder="Enter Rate" value="{{r}}" />
<br><br>
<input type="text" name="txtt" placeholder="Enter Time" value="{{t}}" />
<br><br>
<input type="submit" name="btnsubmit" value="Calculate" />
<input type="submit" name="btnclear" value="Clean" />
</form>
{{key}}
</body>
</html>
POST Answer of Questions and ASK to Doubt