網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
在本教程中,我們將學(xué)習(xí)如何創(chuàng)建一個(gè)使用Django作為后端的天氣應(yīng)用程序。Django提供了一個(gè)基于Python Web框架的Web框架,允許快速開(kāi)發(fā)和干凈,務(wù)實(shí)的設(shè)計(jì)。
基本設(shè)置
將目錄更改為天氣
cd weather
啟動(dòng)服務(wù)器
python manage.py runserver
要檢查服務(wù)器是否正在運(yùn)行,請(qǐng)轉(zhuǎn)到 Web 瀏覽器并輸入為 URL?,F(xiàn)在,您可以通過(guò)按以下命令停止服務(wù)器http://127.0.0.1:8000/
ctrl-c
實(shí)現(xiàn)
python manage.py startapp main
轉(zhuǎn)到主/文件夾通過(guò)做:
cd main
并創(chuàng)建一個(gè)包含文件的文件夾:templates/main/index.html
index.html
使用文本編輯器打開(kāi)項(xiàng)目文件夾。目錄結(jié)構(gòu)應(yīng)如下所示:
現(xiàn)在添加主應(yīng)用settings.py
在天氣中編輯 urls.py?文件:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('main.urls')), ]
在主文件中編輯 urls.py?文件:
from django.urls import path from . import views urlpatterns = [ path('', views.index), ]
在`主文件中編輯 views.py :
from django.shortcuts import render # 導(dǎo)入json以將json數(shù)據(jù)加載到python字典 import json # urllib.request 向api發(fā)出請(qǐng)求 import urllib.request def index(request): if request.method == 'POST': city = request.POST['city'] ''' api密鑰可能已過(guò)期,請(qǐng)使用您自己的api密鑰 將api_key替換為appid=“your_api_key_here” ''' # 包含來(lái)自API的JSON數(shù)據(jù) source = urllib.request.urlopen( 'http://api.openweathermap.org/data/2.5/weather?q =' + city + '&appid = your_api_key_here').read() # 將JSON數(shù)據(jù)轉(zhuǎn)換為字典 list_of_data = json.loads(source) # 變量list_of_data的數(shù)據(jù) 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 密鑰:?天氣 API
導(dǎo)航并編輯它:鏈接到索引.html文件templates/main/index.html
進(jìn)行遷移并遷移:
python manage.py makemigrations python manage.py migrate
現(xiàn)在,讓我們運(yùn)行服務(wù)器以查看天氣應(yīng)用。
python manage.py runserver
原文鏈接:https://juejin.cn/post/7157347431863025672
相關(guān)推薦
- 2022-05-04 關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)概述與優(yōu)缺點(diǎn)對(duì)比_數(shù)據(jù)庫(kù)其它
- 2022-11-26 Mongodb?如何將時(shí)間戳轉(zhuǎn)換為年月日日期_MongoDB
- 2022-10-04 python中numpy矩陣的零填充的示例代碼_python
- 2022-09-04 django連接數(shù)據(jù)庫(kù)獲取數(shù)據(jù)的簡(jiǎn)單步驟記錄_python
- 2022-09-15 關(guān)于PCL出現(xiàn)"無(wú)法找到?pcl_commond.dll?文件程序無(wú)法執(zhí)行"的問(wèn)題及解決方法_C 語(yǔ)
- 2022-12-05 關(guān)于EF的Code?First的使用以及踩坑記錄_實(shí)用技巧
- 2022-03-22 C語(yǔ)言寫(xiě)一個(gè)散列表_C 語(yǔ)言
- 2022-11-18 詳解C語(yǔ)言?xún)?nèi)核字符串拷貝與比較_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支