Weather app using Django | Python

Configurare noua (How To)

Situatie

Django provides a Python Web framework based web framework that allows rapid development and clean, pragmatic design.

Solutie

Pasi de urmat
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),
]

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(
‘http://api.openweathermap.org/data/2.5/weather?q =’
+ 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’]),
}
print(data)
else:
data ={}
return render(request, “main/index.html”, data)

Navigate to templates/main/index.html and edit it 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

Tip solutie

Permanent

Voteaza

(9 din 21 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?