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技术站