We all have made some basic project like To Do App or Weather app so let's build something fun and interesting today!
I was just scrolling through the directory of RapidAPI and found an awesome API by Ajith.
Open VS Code or your favourite text editor then terminal and set up a virtual environment for creating a Django Project by following commands
Setup Venv and Django Project
python -m venv env
cd env/Scripts
./activate
cd ../..
pip install django
pip install requests
django-admin startproject lovecalculator
cd lovecalculator
python manage.py startapp core
python manage.py runserver
We have set up our Project and created an app and now make sure you have added "core" app in the INSTALLED_APPS of settings.py file.
Setup the templates
Create a "templates" folder and then "core" folder within the templates folder.
Now create "home.html" and paste the Bootstrap starter template
Create a function for the homepage in "views.py"
def home(request):
return render(request,'core/home.html')
Later we will add all the logic of our app here.
Before we run the server just create an URL for the homepage in "lovecalculator/urls.py"
from core import views
path('',views.home,name='home'),
And finally, run the server
python manage.py runserver
we can see the "Hello, world!" text on our homepage.
Get the API key
Visit Love Calculator and get your API key or you can just copy the code snippets.
url = "https://love-calculator.p.rapidapi.com/getPercentage"
querystring = {"fname":"John","sname":"Alice"}
headers = {
'x-rapidapi-key': "Your RAPID API KEY",
'x-rapidapi-host': "love-calculator.p.rapidapi.com"}
response = requests.request("GET", url, headers=headers,
params=querystring).json()
print(response)
Paste this code in "home" function.
Hit the homepage again and you will get the response in the terminal.
Now we are getting our desired data, so just arrange it and send it to templates.
In the "views.py" I have created a separate function for fetching the data from API but you can simply add in the "home" function also.
home function
try:
if request.method=='POST':
f = request.POST.get('fname',False)
s = request.POST.get('sname',False)
res = calculator(f,s)
context ={
'fname':res['fname'],
'sname':res['sname'],
'percent':int(res['percentage']),
'result':res['result'],
}
return render(request,'core/result.html',context {'data':context})
return render(request,'core/home.html')
except:
return render(request,'core/error.html')
def calculator(f,s):
url = "https://love-calculator.p.rapidapi.com/getPercentage"
querystring = {"fname":f"{f}","sname":f"{s}"}
headers = {
'x-rapidapi-key': "Your RAPID API Key",
'x-rapidapi-host': "love-calculator.p.rapidapi.com"}
response = requests.request("GET", url, headers=headers, params=querystring).json()
return response
Final Touch
I have added some more HTML file and static files for designing it.
Here is the Github repo of this app
Top comments (0)