天气查询小程序

GitHub仓库地址:GitHub - Lsy0929/weatherdemo: 移动软件开发实验2

一、实验目标

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

二、实验步骤

列出实验的关键步骤、代码解析、截图。

1.准备工作

1.API密钥申请:注册并登录和风天气官方网址,查看控制台找到key密钥。

2.服务器域名配置:进入微信公众平台,在开发设置中添加服务器域名地址

  

2.项目创建

创建空白文件夹,新建项目weatherDemo

  

3.页面配置

1.删除多余的文件和代码

2.创建其他文件,在硬盘的项目文件中新建文件夹images及二级目录weather_icon,将事先下载好的75个天气图标存入其中

  

4.视图设计

1.导航栏设计:在app.json的window属性中将导航栏标题文本改为“今日天气”,背景色改为蓝色。
"window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#3883FA",
    "navigationBarTitleText": "今日天气",
    "navigationBarTextStyle":"black"
  }

 

2.页面设计

将页面分为4个区域,写出对应的wxml和wxss代码:

  • 地区选择器
  • 显示当前城市的温度和天气状态的文字说明
  • 显示当前城市的天气图标
  • 分多行显示更多信息 

 

 

5.逻辑实现

1.更新省、市、区信息,为<picker>组件追加自定义bingChange事件,在js中加入region数据和regionChange函数,使可以切换到国内任意省、市、区。
data: {
    region:['湖南省','湘潭市','湘乡市']
},
regionChange:function(e){
    this.setData({region:e.detail.value});
  }

 

 

2.  获取选择地区的城市ID,引入util.js文件,实现由地区名获取locationID
var getid = require('../../util.js');
that.setData({
      locationid:getid.getLocationID(that.data.region[1])
    });
3.获取实况天气数据,编写getWeather函数在其中使用wx.request接口获取所选区域的天气信息,在onLoad和regionChange函数中分别进行调用,将返回得到的信息存入js的data数据中
wx.request({
      url: '<https://devapi.qweather.com/v7/weather/now>',
      data:{
        location:that.data.locationid,
        key:'4086eb0abd5d49379b95791f34a5b5c4'
      },
      success:function(res){
        console.log(res.data);
        that.setData({
          now:res.data.now
        });
      }
    })

  

4.更新页面天气信息

将wxml页面上所有临时数据都替换成{{now.属性}}的形式,实况天气数据即可实时显示。

三、程序运行结果

程序最终运行成功,成功实现切换城市得到各地实况天气

 

四、问题总结与体会

  • 问题及解决方式

起初在调用request接口时失败,无法获得返回数据,后把url输入浏览器中测试数据返回结果时发现传的参数location不能直接用地区名,而要用该地区的城市ID作为参数,于是引入util.js文件获取对应的城市ID,后调用接口成功。

  • 收获和体会

学习了如何配置服务器域名和如何调用request接口,对于页面的渲染和组件的使用变得更加熟练。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Python 创建桌面天气查询小程序,可以利用第三方 API 获取天气信息,然后使用 Tkinter 创建 GUI 界面,将获取到的天气信息显示在界面上。 以下是一个简单的示例程序,使用了和风天气 API 获取天气信息,使用了 Tkinter 创建 GUI 界面: ```python import tkinter as tk import requests # 和风天气 API 的 URL url = "https://free-api.heweather.net/s6/weather/now" # 在和风天气网站上申请的 API Key key = "your_api_key" # 创建窗口 window = tk.Tk() window.title("天气查询") window.geometry("400x300") # 创建标签和输入框 city_label = tk.Label(window, text="请输入城市名称:") city_label.pack() city_entry = tk.Entry(window) city_entry.pack() # 创建查询按钮 def get_weather(): # 获取用户输入的城市名称 city = city_entry.get() # 发送 API 请求,获取天气信息 params = {"location": city, "key": key} response = requests.get(url, params=params) data = response.json() # 解析天气信息 weather = data["HeWeather6"][0]["now"]["cond_txt"] temperature = data["HeWeather6"][0]["now"]["tmp"] # 在标签中显示天气信息 result_label["text"] = f"{city}的天气:{weather},温度:{temperature}℃" query_button = tk.Button(window, text="查询", command=get_weather) query_button.pack() # 创建显示天气信息的标签 result_label = tk.Label(window, text="") result_label.pack() # 启动消息循环 window.mainloop() ``` 需要注意的是,这个示例程序只是一个简单的演示,实际应用中还需要考虑很多其他因素,比如异常处理、用户输入验证等。另外,和风天气 API 并不是免费的,需要在其网站上申请 API Key 才能使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值