📜  使用 Django 的天气应用程序 | Python

📅  最后修改于: 2022-05-13 01:54:54.675000             🧑  作者: Mango

使用 Django 的天气应用程序 | Python

在本教程中,我们将学习如何创建一个使用 Django 作为后端的天气应用程序。 Django 提供了一个基于Python Web 框架的 Web 框架,允许快速开发和简洁、实用的设计。

基本设置 –
将目录更改为天气 -

cd weather

启动服务器——

python manage.py runserver

要检查服务器是否正在运行,请转到 Web 浏览器并输入http://127.0.0.1:8000/作为 URL。现在,您可以按

ctrl-c

执行 :

python manage.py startapp main

通过执行以下操作转到 main/ 文件夹:

cd main 

并使用index.html文件创建一个文件夹: templates/main/index.html

使用文本编辑器打开项目文件夹。目录结构应如下所示:

现在在settings.py中添加主应用程序

在 weather 中编辑urls.py文件:

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

在 main 中编辑urls.py文件:

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

在 main 中编辑 views.py:

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)

您可以从以下位置获取自己的 API 密钥:Weather API

导航到templates/main/index.html并编辑它:链接到index.html文件

进行迁移并迁移它:

python manage.py makemigrations
python manage.py migrate

现在让我们运行服务器来查看您的天气应用程序。

python manage.py runserver