PyQt5+requests实现车票查询工具

yizhihongxing

PyQt5 + requests 实现车票查询工具

PyQt5 是一个 Python 的 GUI 库,可以用来开发桌面应用程序。requests 是一个 Python 的 HTTP 客户端库,可以用来发送 HTTP 请求。以下是使用 PyQt5 和 requests 实现车票查询工具的详细介绍。

安装 PyQt5 和 requests

在使用 PyQt5 和 requests 实现车票查询工具之前,我们需要先安装 PyQt5 和 requests。可以使用 pip 命令来安装:

pip install PyQt5 requests

创建 GUI 界面

我们可以使用 Qt Designer 工具来创建 GUI 界面。在 Qt Designer 中,我们可以拖拽控件来创建界面,并设置控件的属性和信号槽。创建好界面后,我们可以将其保存为 .ui 文件。

将 .ui 文件转换为 .py 文件

我们可以使用 pyuic5 工具将 .ui 文件转换为 .py 文件。在命令行中执行以下命令:

pyuic5 -o ui_mainwindow.py mainwindow.ui

这将会生成一个名为 ui_mainwindow.py 的 Python 文件,其中包含了我们在 Qt Designer 中创建的界面。

实现车票查询功能

以下是一个实现车票查询功能的示例:

import sys
import requests
from PyQt5.QtWidgets import QApplication, QMainWindow
from ui_mainwindow import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.query_ticket)

    def query_ticket(self):
        from_station = self.lineEdit_from.text()
        to_station = self.lineEdit_to.text()
        date = self.dateEdit.date().toString('yyyy-MM-dd')
        url = f'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={date}&leftTicketDTO.from_station={from_station}&leftTicketDTO.to_station={to_station}&purpose_codes=ADULT'
        response = requests.get(url, verify=False)
        data = response.json()['data']
        for item in data:
            print(item['queryLeftNewDTO']['station_train_code'])

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例中,我们创建了一个名为 MainWindow 的类,继承自 QMainWindow 和 Ui_MainWindow。在 init 方法中,我们调用了父类的 setupUi 方法来设置界面。然后,我们将查询按钮的 clicked 信号连接到了 query_ticket 方法。在 query_ticket 方法中,我们获取了出发站、到达站和日期,并拼接成了查询车票的 URL。然后,我们使用 requests 模块发送了一个 GET 请求,并解析了响应的 JSON 数据。最后,我们遍历了车次信息,并打印出了车次号。

以上是使用 PyQt5 和 requests 实现车票查询工具的详细介绍,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5+requests实现车票查询工具 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Python程序语言快速上手教程

    Python程序语言快速上手教程攻略 简介 本文针对Python初学者,提供一份简明易懂的Python快速上手教程,帮助新手尽快掌握Python基础知识,快速上手编写Python程序。 环境准备 在开始学习Python之前,需要准备以下环境:- 安装Python解释器- 安装代码编辑器或集成开发环境(IDE) 在安装Python解释器的过程中,建议选择Pyt…

    python 2023年6月5日
    00
  • Python创建日历实例

    Python中创建日历实例的过程非常简单。Python内置的 calendar 模块提供了许多函数,可用于操作日历。以下是完整攻略。 导入模块 Python内置的 calendar 模块包含了日历操作的各种函数和类。因此,我们需要导入该模块。 import calendar 打印指定年份的日历 我们可以使用模块中的 calendar.calendar(yea…

    python 2023年5月20日
    00
  • 使用Pyhton 分析酒店针孔摄像头

    使用Python分析酒店针孔摄像头攻略 简介 酒店针孔摄像头一直是社会安全和保密的热门话题。而Python作为一门强大的编程语言,可以帮助我们快速分析和检测这些摄像头。本文将介绍如何使用Python分析酒店针孔摄像头的完整攻略。 了解酒店针孔摄像头 在开始使用Python分析酒店针孔摄像头之前,我们需要了解酒店针孔摄像头的基本知识。酒店针孔摄像头通常隐藏在墙…

    python 2023年6月7日
    00
  • python3 常见解密加密算法实例分析【base64、MD5等】

    下面是详细讲解“Python3常见解密加密算法实例分析【base64、MD5等】”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 Base64 Base64是一种将二进制数据编码为ASCII字符的编码方式,常用于在网络上传输数据。Base64编码的原理是将3个字节的二进制数据分成4组,每组6位,然后将每组6位转换为一个可打的ASCII字…

    python 2023年5月14日
    00
  • python爬虫scrapy框架之增量式爬虫的示例代码

    针对这个主题,我可以提供一份针对“python爬虫scrapy框架之增量式爬虫的示例代码”的完整攻略。 什么是增量式爬虫? 在介绍示例代码之前,我们先来了解一下什么是“增量式爬虫”。简单来说,增量式爬虫就是针对已经抓取过的内容进行增量的、增量的更新;只爬取新加入的,而不是全盘的重新抓取。对于时间线较为敏感的数据应用,增量式爬虫可以减少开销,提高数据更新速度。…

    python 2023年5月14日
    00
  • Python实现字符串的逆序 C++字符串逆序算法

    以下是关于“Python和C++实现字符串逆序算法”的完整攻略: 简介 字符串逆序是一种常见的字符串操作,它可以将字符串中的字符顺序颠倒过来。Python和C++都提供了多种方法来实现字符串逆序。本教程将介绍如何使用Python和C++实现字符串逆序算法,并提供两个示例说明。 Python实现 1.使用切片 Python中可以使用切片来实现字符串逆序。可以使…

    python 2023年5月14日
    00
  • 深入解析Python中函数的参数与作用域

    深入解析Python中函数的参数与作用域 在Python中,函数的参数和作用域是非常重要的概念。理解这些概念可以帮助我们写出更加高效、优雅的Python代码。在本文中,我们将深入探讨Python中函数的参数和作用域的相关知识。 函数参数的类型 在Python中,函数的参数可以分为四种类型:位置参数、默认参数、可变长位置参数和可变长关键字参数。 位置参数 位置…

    python 2023年5月14日
    00
  • Python中格式化字符串的四种实现

    Python中格式化字符串的四种实现指的是在Python中对字符串的格式控制。以下是这四种实现的详细介绍: 1. 使用f-string f-string 是在Python 3.6中引入的一种格式化字符串的方法。其中 f 表示 format(格式),后面跟着一个字符串。在这个字符串中,使用大括号来标识需要格式化的变量。 下面是一个示例: name = ‘Tom…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部