【河南省第二届技能大赛-物联网技术】C模块Python开发讲解

news/2024/7/18 15:22:53 标签: python, 开发语言, 爬虫, 学习

在这里插入图片描述

文章目录

  • 前言
  • 题目如下
  • 什么是云平台API
  • API调用的基本流程
  • Python实例介绍
  • 依赖库介绍
  • API调用的基本参数
  • 请求返回值
  • requests库
  • PyQt5库
  • 总结
  • 源码链接

前言

这是基于样题进行讲解的文章,因为正式赛题尚未公布和样题类型相似。文章结尾提供了源码和环境链接,读者可以自行下载以进行更深入的学习和优化。

题目如下

在这里插入图片描述

注意:题目中的API链接,是在比赛局域网环境下进行的,在平常练习的时候,用新大陆官方链接即可!

链接:新大陆官网AP接口调用文档

什么是云平台API

云平台API(Application Programming Interface,应用程序编程接口)是一种编程接口,用于不同应用程序之间的通信。在云平台中,API通常用于实现设备数据的读取和控制等功能。用户可以使用API对设备进行远程操作,也可以通过API获取设备的各种传感器数据。

API调用的基本流程

API调用的基本流程如下:

  1. 用户登录云平台账号,获取AccessToken。
  2. 使用AccessToken对设备进行认证。
  3. 调用API获取设备数据。
  4. 对获取的数据进行处理和展示。

Python实例介绍

下面我们以一个Python实例来介绍API调用的各种参数及其意义。该实例中,我们通过API调用获取一个温度传感器和一个风扇传感器的数据,并将数据显示在PyQt5的界面上。

依赖库介绍

在该Python实例中,我们需要使用requests、PyQt5和prettytable三个库。其中,requests用于向云平台发送HTTP请求,PyQt5用于构建图形用户界面。

API调用的基本参数

在该Python实例中,我们需要使用以下API调用的基本参数:

  • login_url:登录API的地址,用于获取AccessToken。
  • login_data:登录API的参数,包括账号、密码和是否记住登录状态等。
  • temp_sensor_url:温度传感器API的地址,用于获取温度传感器数据。
  • fan_sensor_url:风扇传感器API的地址,用于获取风扇传感器数据。
  • token_data:认证API的参数,包括AccessToken。

以上均为自定义参数,可对照源码进行查看

请求返回值

请求成功时,API将返回一个带有相应结果的JSON格式响应体。在请求返回的JSON结果中,"Status"表示请求的执行结果,而"ResultObj"是请求的执行结果数据。解析JSON格式数据即可!

requests库

首先我们来看一下requests库中常用的几个函数。

  1. requests.post(url, data=None, json=None, **kwargs)
    这个函数用于向指定url发送POST请求,并且传递data或者json参数。
    • url:需要发送POST请求的url。

    • data:向服务器发送的表单数据,可以是字典、元组列表或字节序列。

    • json:向服务器发送的json格式数据,可以是python对象或字符串。

    • **kwargs:其他的请求参数,例如headers、timeout等。

  2. requests.get(url, params=None, **kwargs)
    这个函数用于向指定url发送GET请求,并且传递params参数。
    • url:需要发送GET请求的url。

    • params:向服务器发送的查询参数,可以是字典、元组列表或字节序列。

    • **kwargs:其他的请求参数,例如headers、timeout等。

  3. response.json()
    这个函数用于将服务器返回的json格式数据转换为Python对象。如果返回的数据不是json格式,将会抛出异常。
  4. response.status_code
    这个属性用于获取服务器返回的HTTP状态码。

PyQt5库

接下来我们来看一下PyQt5库中常用的几个类和函数。

  1. QApplication
    这个类是所有PyQt5应用程序的主要类。它是用来管理应用程序的控制流程、事件循环和各种对象之间的交互。
  2. QMainWindow
    这个类是用来创建主窗口的。它包含一个菜单栏、工具栏、状态栏和中心部件,也可以包含其他窗口小部件。
  3. uic.loadUi()
    这个函数可以将一个.ui文件加载到一个QWidget或其子类中,用于将设计好的UI界面与代码连接起来。
  4. QTimer
    这个类用于创建一个定时器,可以根据指定的时间间隔定期触发timeout信号。它常常用来更新UI界面的信息。
  5. QWidget
    这个类是Qt GUI程序中所有用户界面的基类。它是所有其他窗口部件的父类,并且可以作为窗口部件的容器。
  6. QObject
    这个类是Qt程序中所有对象的基类,提供了信号和槽机制,用于实现对象之间的通信。

总结

本篇博客中,我们学习了如何使用Python的requests库进行HTTP请求,以及PyQt5库的常用类和函数。通过这个例子,我们可以看到如何将这两个库结合起来,实现一个基于PyQt5的UI界面,用于显示传感器数据。同时,我们还讲解了Python程序中的函数、类、模块等基本概念,以及Python程序的运行机制。

源码链接

链接:百度网盘python源码和环境
提取码:9494

注意:运行代码之前,要搭配对应环境,代码内部的部分参数需要进行对应调正,请仔细阅读!



http://www.niftyadmin.cn/n/269757.html

相关文章

Bing 性能是如何跟随 .NET 一起迭代的?

大约两年前,我发表了一篇文章,详细的介绍了 Bing 的中央工作流引擎(XAP)从 .NET Framework 升级到 .NET 5 的过程。你可以通过这篇文章来了解 XAP 的工作原理,以及它在 Bing 全局中的位置。从那时起,XAP 一直是微软许多搜索和工作…

构建一体化数字营销平台,助力医药企业实现销售转化能级大幅跃迁 | 案例研究

今日分享的案例企业成立于1994年,主要从事心血管、消化领域的药品生产、加工、分装和销售,其中心血管相关药品广泛畅销至世界很多个国家。目前,该医药公司销售网络遍及全国80余个城市,以专业人员组成的营业队伍,致力于…

springsecurity工作流程

Spring Security 的工作流程如下: 1.当用户请求一个受保护的资源时,Spring Security 的过滤器链会拦截该请求。 2.然后 Spring Security 会判断该请求是否认证(authenticated)和授权(authorized)。 认证(Authentication):验证用户身份,判断用户是否能登录系统。Spring Securi…

【中级软件设计师】—(针对上午题)二十三种设计模式(三十九)

【中级软件设计师】—(针对上午题)二十三种设计模式(三十九) 一、设计模式的分类 背背背 1 二、创建型设计模式(5种) 三、简单工厂模式 简单工厂模式代码实现如下: /*** author:Ca…

【经典题】二叉搜索树与双向链表

二叉搜索树与双向链表链接 解题思路 思路1 : 中序遍历,将节点放进vector中,再改链接关系,这很容易想出并解决,但这样明显不符合题意。 思路2: 这道题目要求将一个二叉搜索树转换成一个排序的双向链表&a…

【面试题】你都必须得掌握的vue知识

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 大家好,我是前端贰货道士。最近抽空整理了下我对vue2.x的理解和认知&#…

这4种情况,请直接跳槽!程序员跳槽指南

昨天我和一粉丝聊到 他想让我说一说随着工作年限的增长 如何做选择 这同学呢他目前是实习一年 然后工作一年都是在同一家公司 然后平时开发的时候呢 没有任何的问题 整天就是c u r d加全干 然后他的这个绩效还都是a 但是呢公司因为说大环境不好 不给涨工资 所以说想请教一下 是…

读书:《科技论文写作与发表教程(第6版)》

科技写作是指以符合标准格式的科技论文形式在科技期刊上陈述原创性的研究。 另外,还有广义上的科技写作。 科技写作的最主要特点是表达清晰。科技写作不需要漂亮的文学修饰,要把信息清楚地传递给读者。 IMRAD格式:Introduction Methods Re…