How to create from in Django application using GET Method

0





To take input from user's we will create HTML Form Template using Html Form Elements and attribute.

Step to create the form under Django framework:-


1) Create "templates" Directory Under App and under "templates" Create app name directory then create a file and design form according to the requirement

templates/appname/filename

for example, siapp is the appname then we create templates folder then create siapp folder then create filename

2) Render Html page under view load method

def index(request):    #load method
return render(request,"appname/htmlfilename")

3)  Create Action Method in views.py
 
   def silogic(request):  #action method
logic
return data

4) define the load method, action method url under urls.py, and write action method URL under form action attribute.

     <form action="actionurl" method="get">

    </form>

for example, action method is silogic() then we will create path for silogic and define this path under form action

 <form action="silogic" method="get">
<input type="text" name="txtnum1" placeholder="Enter p" />
<br>
<input type="text" name="txtnum2" placeholder="Enter r" />
<br>
<input type="text" name="txtnum3" placeholder="Enter t" />
<br>
<input type="submit" name="btnsubmit" value="Calculate" />
</form>

Complete Code of Views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):     #load method
return render(request,"siapp/silogic.html")
def silogic(request):    #action method
p=request.GET["txtnum1"]
r=request.GET["txtnum2"]
t=request.GET["txtnum3"]
si=(float(p)*float(r)*float(t))/100
return HttpResponse("result is "+str(si))


Complete Code of Design using templates/appname/filename

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="silogic" method="get">
<input type="text" name="txtnum1" placeholder="Enter p" />
<br>
<input type="text" name="txtnum2" placeholder="Enter r" />
<br>
<input type="text" name="txtnum3" placeholder="Enter t" />
<br>
<input type="submit" name="btnsubmit" value="Calculate" />
</form>
</body>
</html>



GET method is not the prefered method for the Form component, we should always use the post method to submit form data because GET is unsecure and limited to transfer the data from the client machine to server machine and post is secure and reliable, we can also send unlimited data using POST Method.


Where shall we use the GET Method?

If we want to send data under Weburl or transfer data using URL Parameters then we will use the GET method.


Another Example of GET Method?

urls.py:-

from django.urls import path
from . import views

urlpatterns=[
   # path('',views.welcome,name='welcome'),
   
    path('additionload',views.additionload,name='additionload'),
    path('additionlogic',views.additionlogic,name='additionlogic')
]



Code of views.py

from django.shortcuts import render
from django.http import HttpResponse


def additionload(request):
   return render(request,"helloapp/additionload.html")

def additionlogic(request):
   a = request.GET["txtnum1"]
   b = request.GET["txtnum2"]
   c = int(a)+int(b)
   return render(request,"helloapp/additionload.html",{"key":c})


Create template file under templates directory?

additionload.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="/helloapp/additionlogic" method="get">
   
       <input type="text" name="txtnum1" placeholder="Enter first number" />
       <br><br>
       <input type="text" name="txtnum2" placeholder="Enter second number" />
       <br><br>
       <input type="submit" name="btnsubmit" value="Addition" />

    </form>

    {{key}}
</body>
</html>




Post a Comment

0Comments

POST Answer of Questions and ASK to Doubt

Post a Comment (0)