In this tutorial, we will learn how to create a Weather app that uses Django as backend. Django provides a Python Web framework based web framework that allows rapid development and clean, pragmatic design.
Basic Setup –
Change directory to weather –
cd weather
Start the server –
python manage.py runserver
To check whether the server is running or not go to a web browser and enter http://127.0.0.1:8000/
as URL. Now, you can stop the server by pressing
ctrl-c
Implementation :
python manage.py startapp main
Goto main/ folder by doing :
cd main
and create a folder with index.html
file: templates/main/index.html
Open the project folder using a text editor. The directory structure should look like this :

Now add main app in settings.py

Edit urls.py
file in weather :
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path( 'admin/' , admin.site.urls),
path(' ', include(' main.urls')),
]
|
edit urls.py
file in main :
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
]
|
edit views.py in main :
from django.shortcuts import render
import json
import urllib.request
def index(request):
if request.method = = 'POST' :
city = request.POST[ 'city' ]
source = urllib.request.urlopen(
+ city + '&appid = your_api_key_here' ).read()
list_of_data = json.loads(source)
data = {
"country_code" : str (list_of_data[ 'sys' ][ 'country' ]),
"coordinate" : str (list_of_data[ 'coord' ][ 'lon' ]) + ' '
+ str (list_of_data[ 'coord' ][ 'lat' ]),
"temp" : str (list_of_data[ 'main' ][ 'temp' ]) + 'k' ,
"pressure" : str (list_of_data[ 'main' ][ 'pressure' ]),
"humidity" : str (list_of_data[ 'main' ][ 'humidity' ]),
}
print (data)
else :
data = {}
return render(request, "main/index.html" , data)
|
You can get your own API key from : Weather API
Navigate to templates/main/index.html
and edit it: link to index.html
file
Make migrations and migrate it:
python manage.py makemigrations
python manage.py migrate
now let’s run the server to see your weather app.
python manage.py runserver

Last Updated :
25 May, 2022
Like Article
Save Article
Vote for difficulty