PyQt5+requests实现车票查询工具

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 xml、字典、json、类四种数据类型如何实现互相转换

    转换Python数据类型之间的过程可以使用标准库中的 xml,json 模块实现。此外,Python自带的字典和类也可以进行互相转换。下面将详细介绍四种数据类型的转换方法: 1. XML与Python之间的转换 将Python数据类型转换成XML 使用xml.etree.ElementTree模块中Element 类中的方法tostring(),可以将Pyt…

    python 2023年5月31日
    00
  • Python 虚拟机字典dict内存优化方法解析

    下面我将为你详细讲解“Python 虚拟机字典 dict 内存优化方法解析”的完整攻略。 1. 什么是 dict ? dict 是 Python 内置的一种数据结构,是一个无序、可变的键-值对(key-value)集合。字典中每个键必须是唯一的,而值可以重复。在 Python 中,字典是一种非常常用的数据结构之一,因为它能够高效地进行数据查找、数据插入、数据…

    python 2023年5月13日
    00
  • Python 实现取矩阵的部分列,保存为一个新的矩阵方法

    实现取矩阵的部分列并保存为一个新的矩阵有以下几个步骤: 步骤 1:安装依赖库 要实现此任务,需要首先安装以下两个依赖库: Numpy: 用于处理数据 Pandas: 用于读取、处理和保存数据到文件 可以通过以下命令进行安装: pip install numpy pandas 步骤 2:读取原始矩阵数据 读取原始矩阵数据可以通过 Pandas 库中的 read…

    python 2023年6月5日
    00
  • Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题

    在本攻略中,我们将介绍如何使用Python爬虫设置Cookie来解决网站拦截并爬取蚂蚁短租的问题。以下是一个完整攻略,包括两个示例。 步骤1:分析网站 首先,需要分析网站的请求和响应。我们可以使用浏览器的开发者工具来分析网站的请求和响应。在这个过程中,我们需要查看请求头和响应头,以及请求和响应的内容。 步骤2:设置Cookie 接下来,我们需要设置Cooki…

    python 2023年5月15日
    00
  • Python利用IPython提高开发效率

    Python利用IPython提高开发效率 概述 Python是一种高效的编程语言,直接在Python交互式控制台使用Python代码可以让开发者快速实现想法,快速验证代码,简单调试程序并看到输出结果。在Python的标准库中有一个交互式环境IPython,提供了比Python交互式控制台更强大的环境,可以大大提高开发效率。 安装IPython IPytho…

    python 2023年5月13日
    00
  • Zend Framework 2.0事件管理器(The EventManager)入门教程

    Zend Framework 2.0事件管理器入门教程 什么是Zend Framework的事件管理器? Zend Framework的事件管理器提供了一种松耦合架构的方式,它通过一个可扩展的事件机制,让系统中的各个组件/模块之间更方便的互相通信和协作,使得系统更具伸缩性和可拓展性。通过Zend Framework的事件管理器,你可以把代码组织好,使得不同的…

    python 2023年6月13日
    00
  • python中使用zip函数出现错误的原因

    当我们使用Python中的zip函数时,它会将多个可迭代对象打包成一个元组序列,并返回一个zip对象。但是,有时当我们尝试直接打印zip对象时,却会出现类似于“”这样的错误信息。 这是因为zip函数实际上是一个生成器函数,它在调用时并没有真正执行,而是返回了一个生成器对象。因此,当我们尝试打印zip对象时,它实际上只是返回了一个对象的内存地址。 为了避免这种…

    python 2023年6月3日
    00
  • Django 后台获取文件列表 InMemoryUploadedFile的例子

    这里提供一个完整的Django后台获取InMemoryUploadedFile文件列表的攻略,包括以下几个主要步骤: 创建模型和视图 在Django中创建模型和视图来处理文件上传和获取。一个示例模型可以是: from django.db import models class FileUpload(models.Model): file = models.F…

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