Open In App
Related Articles

Weather app using Django | Python

Improve Article
Save Article
Like Article

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 runserver

To check whether the server is running or not go to a web browser and enter as URL. Now, you can stop the server by pressing


Implementation :

 python 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

Edit file in weather :

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('', include('main.urls')),

edit file in main :

from django.urls import path
from . import views
urlpatterns = [
         path('', views.index),

edit in main :

from django.shortcuts import render
# import json to load json data to python dictionary
import json
# urllib.request to make a request to api
import urllib.request
def index(request):
    if request.method == 'POST':
        city = request.POST['city']
        ''' api key might be expired use your own api_key
            place api_key in place of appid ="your_api_key_here "  '''
        # source contain JSON data from API
        source = urllib.request.urlopen(
                    + city + '&appid = your_api_key_here').read()
        # converting JSON data to a dictionary
        list_of_data = json.loads(source)
        # data for variable list_of_data
        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']),
        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 makemigrations
python migrate

now let’s run the server to see your weather app.

python runserver

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 25 May, 2022
Like Article
Save Article
Similar Reads
Complete Tutorials