實驗2 天氣預報

實驗1 天氣預報

  • 一、實驗目標
  • 二、實驗步驟
    • (一)準備工作
    • (二)小程序開發
      • 項目創建
      • 頁面配置
      • 視圖設計
      • 邏輯實現
  • 三、程序運行結果
  • 四、問題總結與體會
    • 主要問題及解決方案
    • 主要收獲

chunk的博客地址

一、實驗目標

1、掌握服務器域名配置和臨時服務器部署;
2、掌握 wx.request 接口的用法。

二、實驗步驟

(一)準備工作

  1. 申請API密鑰

    • 選擇可以提供全球氣象數據服務s接口得和風天氣API,首先進入官方網址,輸入郵箱免費注冊;
    • 注冊完成后訪問控制臺查看賬號信息,依據官方文檔成功生成API KEY,記錄該key。(API KEY可以用于在小程序發出網絡請求時作為身份識別的標識一起發送給和風天氣的第三方服務器)
  2. 調用API

    • 取出在和風天氣中的API KEY及API Host
    • 訪問https://mn5xmd96fj.re.qweatherapi.com//v7/weather/now?location=101010100&key=f40427d91c8c43a9a7db17aede262b09。

weather關鍵字代表獲取實況天氣,基于weather的接口有兩個必填參數,分別為city和key,其中,city表示要查詢的城市,此處選取城市ID為主要參數,key即為開發者的API KEY。

  1. 服務器域名配置

    登錄微信公眾平臺,進入小程序管理員后臺,在“開發設置面板”的“服務器域名”中添加或修改所需要的網絡通信的服務器域名地址。此小程序主要需要添加的為request合法域名,即為開發者在和風天氣中的API Host。

(二)小程序開發

項目創建

在微信開發者工具新建空項目。

頁面配置

  1. 創建頁面文件
    在根目錄下生成文件夾pages存放頁面文件,首頁默認為index。

  2. 刪除和修改文件

    • 刪除utils文件夾及其所有內容;
    • 刪除pages文件夾下的logs目錄及其所有內容;
    • 刪除index.wxmlindex.wxssapp.wxss的所有代碼;
    • 刪除index.js的全部代碼,輸入關鍵詞"page"自動補全函數;
    • 刪除的app.js的所有代碼,輸入關鍵詞"app"自動補全函數。

      在這里插入圖片描述
  3. 創建其他文件
    本項目還需要一個文件夾用存放天氣圖標素材,素材均來自于和風天氣官網。在根目錄下新建images文件夾及其子文件夾weather_icon,將圖片文件全部復制進去。(需要注意的是,為了使圖片更加覆蓋各種天氣,這里下載的是和風天氣官網提供的完整zip,但圖片格式為.svg

視圖設計

  1. 導航欄設計
    更改app.json文件將導航欄標題和背景改為自定義顏色。
    圖中所示代碼改為藍色背景色,預覽效果如圖。

  2. 頁面設計

    本小程序頁面主要包含4個區域:

    1. 區域1: 地區選擇器,用戶可以自行選擇查詢的省、市、區;
    2. 區域2: 顯示當前城市的溫度和天氣狀態的文字說明;
    3. 區域3: 顯示當前城市的天氣圖標;
    4. 區域4: 分多行顯示其他天氣信息,如濕度、氣壓、能見度和風向。
      具體使用的組件如下:
    • <view>

    • <picker>

    • <image>
      首先,定義頁面的容器container并在app.wxss中設置容器樣式,包括高度、布局、是否居中以及間距。

      接著,添加各種組件元素。

    • 區域1:使用<picker>組件完成,用戶可以點擊切換其他城市,組件內部隨意填寫一個城市名稱(相當于默認城市),當點擊城市名稱時會從底部彈出控件讓用戶進行省、市、區的選擇;

    • 區域2:主要是進行文字的設計,包括當前城市的溫度和天氣狀況;

    • 區域3:將天氣圖標導入(由于文件中下載的是.svg的圖標,因此在image組件內部必須注意要寫為:/images/weather_icon/1.svg);

    • 區域4:展示多行天氣信息,使用detail,接著定義需要的單元行(bar),在每行內部定義單元格(box)。

邏輯實現

  1. 更新省、市、區信息
    picker組件中的具體省份改為{{region}},接著為該組件追加自定義的bindchange事件,用于監聽選項變化;

    由于地區選擇器的返回結果是數組的形式,因此在JS文件的data中定義一個包含省、市、區三個項目的數組,初始信息由開發者自己定義。
    外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
  2. 獲取實況天氣數據
    在JS文件中添加自定義getWeather函數進行實況天氣數據的獲取,后續的天氣查詢以城市作為查詢依據。

    將定義的getWeather函數在生命周期函數onLoadregionChange中分別調用,表示當頁面加載時和切換城市時均主動獲取一次實況天氣數據。

    編譯后重新運行會在控制臺得到第三方服務器發揮的JSON數據,如圖所示。
  3. 更新頁面天氣信息
    將WXML頁面上的所有零食數據都替換成{{now.屬性}}的形式,為了加快獲取數據的速度,最好在IS文件的data中為now規定初始數據,在獲取到實際數據之前可以臨時顯示這些數據。

三、程序運行結果

可以成功獲取動態獲取各城市天氣:
在這里插入圖片描述在這里插入圖片描述

四、問題總結與體會

主要問題及解決方案

  1. API配置問題

    • 問題:URL地址不完整,域名未加入白名單

    • 解決:配置完整API地址,在小程序后臺添加域名白名單

  2. 參數格式錯誤

    • 問題:使用城市名稱而非城市代碼

    • 解決:建立城市名稱到代碼的映射關系

  3. 數據字段不匹配

    • 問題:API返回字段與代碼期望字段不一致

    • 解決:修正字段映射關系

  4. 圖標格式錯誤

    • 問題:代碼引用PNG格式,實際為SVG格式

    • 解決:修改圖標路徑為正確的SVG格式

  5. 缺少動態更新

    • 問題:location參數硬編碼,無法動態切換城市

    • 解決:實現getCityCode函數,支持動態城市代碼獲取

主要收獲

  1. 微信小程序開發技能
    • 學會了picker組件的多級聯動,支持省市區三級選擇
    • 理解了數據綁定機制和setData的使用方法
    • 更加熟悉小程序的生命周期函數(onLoadonShow等)
  2. 網絡編程與API集成
    • 學會了使用wx.request接口,了解API及服務器域名配置
    • 掌握了JSON數據的解析和字段映射技巧
  3. 調試與問題解決能力
    • 熟練使用微信開發者工具的調試功能和網絡面板
    • 掌握了系統性的問題分析方法:問題定位→原因分析→解決方案→驗證測試
    • 提升了閱讀官方文檔和API文檔的能力

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94387.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94387.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94387.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CVE-2025-5419】(內附EXP) Google Chrome 越界讀寫漏洞【內附EXP】

前言 近日,奇安信CERT監測到Google Chrome中曝出一枚高危安全漏洞(CVE-2025-5419,QVD-2025-21836),該漏洞屬于越界讀寫問題,攻擊者只需通過構造惡意網頁,就可能觸發漏洞,從而繞過Chrome的沙箱防護,直接實現遠程代碼執行,最終完全控制用戶設備。目前,安全社區已確認…

【科研繪圖系列】R語言在海洋生態學中的應用:浮游植物糖類組成與溶解性有機碳的關系

禁止商業或二改轉載,僅供自學使用,侵權必究,如需截取部分內容請后臺聯系作者! 文章目錄 介紹 數據準備 數據處理 糖類組成隨年齡的變化 糖類組成與DOC含量的關系 數據可視化 加載R包 數據下載 導入數據 數據預處理 畫圖 總結 系統信息 介紹 本教材通過R語言及其強大的數據…

webpack文件指紋:hash、chunkhash與contenthash詳解

文件指紋就是打包后輸出文件的后綴&#xff0c;每次構建都會生成不同的文件后綴&#xff0c;這樣可以防止瀏覽器的默認緩存&#xff0c;使客戶端代碼可以及時修改。文件指紋的三種方式&#xff1a;? hash ?&#xff1a;基于整個項目構建內容生成全局哈希值&#xff0c;任何文…

Pytest 插件怎么寫:從0開發一個你自己的插件

概述 你用過 pytest-html 生成報告,或用 pytest-xdist 并行運行測試嗎?這些強大的功能,其實都是 Pytest 插件 這些都是我們引入項目后直接使用的,當然 你也可以自己寫一個 Pytest 插件 基本原理 Pytest 的強大,源于它的 插件系統。它允許你通過定義特定的函數(稱為 H…

Java:IO流——基礎篇

目錄 前言 一、File 類 1、概述 ①構造方法 ②實例對象 2、使用 ①查看名稱、路徑、長度 ②判斷、創建和刪除操作 ③目錄遍歷操作 二、IO流 1、流的概念 2、流的分類 ①按數據流向 ②按數據類型 ③按功能 3、字節流 ⑴FileInputStream——文件輸入流 ⑵FileOutputStream——文件…

數據挖掘 5.1~5.2 PCA——前言

5.1 Twelve ways to fool the masses 5.1 愚弄大眾的十二種方法 5.2.1 Prelim: Old MacDonald meets Lagrange 5.2.1 前言&#xff1a;老麥克唐納遇見拉格朗日 5.2. Prelim: Meet stubborn vectors 5.2. 前言&#xff1a;遇見頑固向量 5.2.3 Prelim: Covariance and its friend…

DeepSeek分析

(非走向數字時代,融入數字生活,構建數字生態的分解,只是感覺可以分享給大家---因此現設置VIP,旺海涵) 這是deepseek剛爆的時候,春節緊急對其做的分析。 內容還是私藏狀態,做了初步評估,感覺可以分享給大家!!! 但是非共享的構建數字生態的核心,因此添加了vip設置…

2025第五屆人工智能、自動化與高性能計算國際會議 (AIAHPC 2025)

重要信息 官網&#xff1a;www.aiahpc.org 時間&#xff1a;2025年9月19-21日 地點&#xff1a;中國合肥 主題 1、高性能計算 并行和分布式系統架構 高性能計算的語言和編譯器 并行和分布式軟件技術 并行和分布式算法 嵌入式系統 計算智能 點對點計算 網格和集群計算…

CORS解決跨域問題的多個方案 - nginx站點配置 / thinkphp框架內置中間件 / 純前端vue、vite的server.proxy代理

效果圖 跨域報錯 跨域解決 方案實測 1. nginx、apache站點配置 > OK 2. thinkphp框架內置中間件 “跨域請求支持” > OK 3. 純前端vue、vite的server.proxy代理 > 不OK 方案具體設置 1. nginx、apache站點配置 > OK 修改nginx服務器的站點的跨域信息 日志下…

什么是Omni-Hub?一套面向“萬物智聯”時代的操作系統級方法論

Omni-Hub&#xff08;中文常譯“全向中樞”&#xff09;&#xff0c;是一套面向未來數字化生態的開放型系統級框架&#xff0c;由“Omni”&#xff08;全域、全向、全模態&#xff09;與“Hub”&#xff08;中樞、樞紐&#xff09;組合而成&#xff0c;旨在通過統一接口、協議與…

ARP地址解析協議

工作原理ARP是一個封裝于數據鏈路層的二層協議&#xff0c;其目的主要是將IP地址解析為MAC地址&#xff0c;通過廣播&#x1f509;詢問Who is x.x.x.x&#xff0c;對方收到后單播回應自己的mac地址動態ARP動態ARP通過ARP協議自動學習和維護IP與MAC的映射關系&#xff0c;表項具…

PortSwigger靶場之Blind SQL injection with out-of-band interaction通關秘籍

一、題目分析 該實驗室存在一個盲 SQL 注入漏洞。該應用程序使用跟蹤 cookie 進行分析&#xff0c;并執行包含所提交 cookie 值的 SQL 查詢。該 SQL 查詢是異步執行的&#xff0c;不會對應用程序的響應產生影響。不過&#xff0c;我們可以與外部域觸發非帶內交互。要解決此漏洞…

筆試-筆記3

1.在以下聲明中哪一個表示“指向常量的指針”(指針指向的內容不能修改)&#xff1f; A.char* const p B.const char* p C.char *p const D.char const p 解析&#xff1a; 選B&#xff0c;const修飾的變量為常量&#xff0c;意味著不能修改 A是常量指針&#xff0c;const修飾的…

Linux正則表達式

文章目錄一、Linux正則表達式與三劍客知識1.什么是正則表達式&#xff1f;2.為什么要學習正則表達式&#xff1f;3.有關正則表達式容易混淆的事項4.學習正則表達式注意事項5. 正則表達式的分類5.1 基本的正則表達式&#xff08;BRE&#xff09;集合6. 正則表達式測試題7. 擴展正…

MATLAB Figure畫布中繪制表格詳解

文章目錄 1 使用uitable創建帶有樣式和顏色映射的表格 2 使用imagesc和text創建自定義表格 3 使用patch和text創建完全自定義的表格 4 代碼詳細講解 4.1 使用uitable 4.2 使用imagesc和text 4.3 使用patch和text 5 顏色映射技巧 5.1 使用內置顏色映射 5.2 自定義顏色映射函數 5…

Python在語料庫建設中的應用:文本收集、數據清理與文件名管理

一、問題的提出在日常語言學習與教學中&#xff0c;語料庫是一個不可或缺的工具。它可以幫助我們查找高頻詞&#xff0c;獲取搭配信息、例句信息、關鍵詞信息等。由于建庫過程操作步驟多&#xff0c;有時還要用到圖片識別、格式轉化、文本清理等技巧&#xff0c;很多人往往都止…

STL——priority_queue的使用(快速入門詳細)

目錄 前言 一、基本知識 二、使用 前言 priority_queue是在queue庫里的&#xff0c;所以使用的時候要包含queue頭文件。使用方法和堆類似&#xff0c;因為它的底層其實就是大根堆。 一、基本知識 優先隊列優先級隊列是一種容器適配器&#xff0c;根據一些嚴格的弱排序標準&…

MATLAB中函數的詳細使用

一、函數基本知識function語法&#xff1a; function [,...,] myfun(,...,)&#xff0c; …

服務器初始化流程***

前言在云計算與自動化運維日益成熟的今天&#xff0c;快速、批量地部署服務器已成為常態。然而&#xff0c;一臺新構建的云服務器或新安裝的物理服務器&#xff0c;僅僅是一個可運行的操作系統內核&#xff0c;遠未達到投入生產環境或開發測試的標準。一個缺乏標準化配置的“裸…

Python實現電商Excel讀取進行可視化分析

目錄專欄導讀項目簡介功能特性&#x1f4ca; 數據處理功能&#x1f4c8; 統計分析功能&#x1f3a8; 可視化功能&#x1f4cb; 報告生成項目結構安裝和使用環境要求安裝步驟使用自己的數據依賴包說明輸出文件說明靜態圖表&#xff08;PNG格式&#xff09;交互式圖表&#xff08…