首页 > 编程语言 >如何用Python将HTTP接口封装成可视化页面。

如何用Python将HTTP接口封装成可视化页面。

时间:2024-09-19 15:12:59浏览次数:11  
标签:HTTP Python self 接口 api 可视化 PyQt5 pyinstaller

       在软件行业中,经常会遇到有一些功能只能通过接口触发,没有页面。这样很不方便,。

我们这里,就是通过PyQt5实现,将接口的入参,封装成一个可视化的表单。将用户在表单中填写的数据,传给接口,接口再带参请求业务

 

1.先看最终的效果,用户打开桌面应用后,只会出现下面的弹窗,

 接口代码等,无感

 

 

 

2.接下来就是详细步骤:


步骤 1: 安装必要的库
首先,确保你的Python环境已经安装。然后,你需要安装PyQt5。你可以通过pip安装它:

pip install PyQt5
PS:PyQt5是一个用于创建图形用户界面(GUI)的Python库。我们需要PyQt5来创建可视化页面。

步骤 2: 编写代码
接下来,我们将编写Python代码来创建一个窗口,该窗口包含一个表单提交页面,用户点击“”确定“按钮时,将输入的姓名和电话,传给添加地址接口的body使用。

#本代码是通过PyQt5库实现前后端交互,在本地电脑打开一个提交表单的窗口,然后把表单数据传参给接口
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton, QLabel, QMessageBox
import sys
import requests
import jsonpath


class TestApi:
    Token1 = ""
    addname = ""
    addPnonenumber = ""

    #1登录接口
    def test_login1_api(self):
        url = "https://www.xxxxxxxx.com/web/api/user/login/v2"
        headers = {"Content-Type":"application/x-www-form-urlencoded"}
        datas = {"username":"admin","password":"12345678","verify":"","openId":"","unionId":"","rebind":"0"}
        res = requests.post(url,headers=headers,data=datas)
        result = res.json()
        print("登录接口响应报文",res.text)
        assert '登录成功' in res.text
        value = jsonpath.jsonpath(result,"$.data.token")
        TestApi.Token1 = value[0]

    #2添加地址接口
    def test_addAddress_api(self):

        if not self.addname or not self.addPnonenumber:
            print("错误:姓名或电话号码未设置。")
            return
        url = "https://www.xxxxxxxx.com/web/api/member/editAddress"
        headers = {"Content-Type":"application/x-www-form-urlencoded","Authorization": TestApi.Token1}
        datas = {"id":"0","name":self.addname,"phone":self.addPnonenumber,"address":"广东省湛江市雷州市乌石镇","cityId":"440882","cityName":"广东省湛江市雷州市","streetName":"乌石镇","latitude":"20.556195","longitude":"109.856828","isDefault":"false"}
        print("Sending data:", datas)
        res = requests.post(url,headers=headers,data=datas)
        print("添加地址接口响应报文",res.text)
        assert '成功' in res.text


    def run_all_apis(self, main_window):
        success = True
        try:
            self.test_login1_api()
            self.test_addAddress_api()
        except AssertionError as e:
            success = False
            print(e)
        if success:
            main_window.show_message("所有接口调用成功!")
        else:
            main_window.show_message("有异常,请检查代码")


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('地址信息输入')
        self.setGeometry(100, 100, 300, 150)
        layout = QVBoxLayout()
        self.nameLabel = QLabel('姓名:', self)
        self.nameInput = QLineEdit(self)
        layout.addWidget(self.nameLabel)
        layout.addWidget(self.nameInput)
        self.phoneLabel = QLabel('电话:', self)
        self.phoneInput = QLineEdit(self)
        layout.addWidget(self.phoneLabel)
        layout.addWidget(self.phoneInput)
        self.submitButton = QPushButton('确定', self)
        self.submitButton.clicked.connect(self.submit_info)
        layout.addWidget(self.submitButton)
        self.setLayout(layout)
        self.api_tester = TestApi()


    def submit_info(self):
        self.api_tester.addname = self.nameInput.text().strip()  # 使用strip()去除可能的空白字符

        self.api_tester.addPnonenumber = self.phoneInput.text().strip()

        if not self.api_tester.addname or not self.api_tester.addPnonenumber:
            QMessageBox.warning(self, "输入错误", "请填写完整的姓名和电话号码!")
            return
        self.api_tester.run_all_apis(self)

    def show_message(self, message):
        QMessageBox.information(self, "结果", message)  # 使用self作为窗口对象


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

 

 



步骤 3: 运行程序
保存你的Python文件(例如countdown.py),然后在CMD命令行中运行它:或者直接在pycharm脚本调试运行,也是可以的。

cd C:\Program Files\python3.12\pythonProject
python countdown.py


       你应该会看到一个简单的窗口,上面显示着姓名和电话的输入框,以及一个确定按钮。此时,其实已经实现了接口可视化功能。但是唯一缺点是,目前还需要依赖Python环境,所以如有需要,接下来我们将开始,把以上代码,打包成一个可执行的应用程序,即.exe文件,直接运行即可,不再依赖环境。

 

       要使PyQt5应用程序在任何电脑上运行而无需安装Python环境,可以使用一些工具来将Python代码、必要的库以及一个Python解释器一起打包成一个可执行文件(.exe)。
以下是方法:

步骤 1:

PyInstaller 是一个很好的选择,因为它支持多种平台(Windows、Linux、MacOS)并且相对容易使用。你需要确认 PyInstaller 是否已经安装在你的系统上,并且需要添加pyinstaller安装目录的环境变量。你可以通过 Python 的包管理工具 pip 来检查,

pip show pyinstaller
# 或者,如果你使用的是 Python 3,可能需要使用
pip3 show pyinstaller

如果这个命令返回了 PyInstaller 的信息,那么它已经被安装了。如果没有返回任何信息,那么可以通过 pip 来安装它:

pip install pyinstaller
# 或者,对于 Python 3
pip3 install pyinstaller

 



步骤 2:打包您的应用程序
在包含您的Python脚本(例如SpringFestivalCountdown.py)的目录中,打开cmd命令行或终端,并运行以下命令来打包您的应用程序:

pyinstaller --onefile --windowed SpringFestivalCountdown.py

--onefile 选项指示PyInstaller将所有内容打包到一个单独的可执行文件中。
--windowed 或 --noconsole 选项对于GUI应用程序很有用,因为它会隐藏命令行窗口(如果您的应用程序是基于控制台的,则不需要此选项)。

#方案二:如以上方法不行,注意,可能需要管理员权限运行。先管理员打开cmd,然后cd到py文件路径,使用命令pyinstaller -F name.py


#方案三,由于部分电脑的python、pip、pyinstaller等安装环境的问题,导致pyinstaller命令不能被识别,或者如果你不想修改 PATH 环境变量,只是想快速测试 PyInstaller 是否可用,你可以使用 Python 的完整路径来调用 pip 安装的脚本。例如,在 Windows 上,你可以这样做,将PyInstaller文件和脚本文件路径写死:

"C:\Program Files\python3.12\pythonProject\.venv\Scripts\pyinstaller.exe" --onefile --windowed "C:\Program Files\python3.12\pythonProject\XX_name.py"

 

步骤 3:查找可执行文件
        打包完成后,您会在dist目录下找到名为SpringFestivalCountdown.exe(在Windows上)的可执行文件。您可以将其复制到任何Windows电脑上运行,而无需安装Python。具体文件位置,在cmd输出时,可以显示出来。
   一般情况下保存程序的路径都是这样的:C:\Program Files\python3.12\pythonProject\dist,在这个文件夹去运行程序就可以了。

 

 

本文只是给具体的思路起个头,还有很多不完善的,希望各位大佬可以一起参与建设。

标签:HTTP,Python,self,接口,api,可视化,PyQt5,pyinstaller
From: https://www.cnblogs.com/xiaodi888/p/18420600

相关文章

  • [1065] Reverse geocoding in python
    ToimplementreversegeocodinginPython,youcanusethegeopylibrary,whichprovidesaconvenientinterfaceforvariousgeocodingservices.Here’sastep-by-stepguidetohelpyougetstarted:Step-by-StepGuideInstallthegeopylibrary:pipinstall......
  • 只会Python编程,做量化交易策略用QMT怎么样?听说QMT是支持Python的!
    QMT是专门为机构、活跃投资者、高净值客户等专业投资者研发的智能量化交易终端,拥有高速行情、极速交易、策略交易、多维度风控等专业功能,满足专业投资者的特殊交易需求。覆盖业务范围广:沪深A股、港股通、两融、期权、期货。适合用QMT的投资者:机构投资者:对系统交易工具和交......
  • Python量化分析2024年最新整理的免费获取股票数据接口集合以及API数据接口说明文档
    ​近一两年来,股票量化分析逐渐受到广泛关注。而作为这一领域的初学者,首先需要面对的挑战就是如何获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的核心任务是从这些数据......
  • Jmeter的简单使用一:http请求
    1、创建线程组setUp和tearDown线程组类似测试用例的测试开始之前执行某些初始化操作,如环境准备、数据库连接和释放数据库连接2、设置线程组Ramp-Up时间(以秒为单位)是指从开始到所有线程都达到活动状态的时间。例如,如果你设置了10个线程,并且Ramp-Up时间为20秒,那么JMeter会在20秒......
  • Python中使用Redis布隆过滤器
    Python中使用Redis布隆过滤器在Python中使用Redis布隆过滤器,可以利用redis-py库和redis-py-bloom扩展。布隆过滤器是一种空间效率高的概率性数据结构,适合用于判断某个元素是否在集合中。以下是如何在Python中设置和使用Redis布隆过滤器的步骤:安装依赖首先,确保你已经......
  • [Python]案例驱动最佳入门:Python数据可视化在气候研究中的应用
    在全球气候问题日益受到关注的今天,气温变化成为了科学家、政府、公众讨论的热门话题。然而,全球气温究竟是如何变化的?我们能通过数据洞察到哪些趋势?本文将通过真实模拟的气温数据,结合Python数据分析和可视化技术,带你深入了解全球气温的变化趋势,并揭示气候变化背后的奥秘。1.......
  • 智慧课堂学生行为检测评估系统 Python
    智慧课堂学生行为检测评估系统利用摄像头和人工智能技术,智慧课堂学生行为检测评估系统实时监测学生的上课行为,智慧课堂学生行为检测评估系统通过图像识别和行为分析,评估学生的表情、是否交头接耳行为、课堂参与度以及互动质量,并提供相应的反馈和建议。智慧课堂学生行为检测评估系统......
  • 优化下载性能:使用Python多线程与异步并发提升下载效率
    文章目录......
  • Python高手之路:揭秘列表的高级操作技巧
    引言列表的高级操作不仅能够提升代码的可读性和执行效率,还能让我们的程序更加灵活多变。无论是在日常开发还是数据分析任务中,掌握这些技巧都将使你如虎添翼。接下来,让我们从最基础的概念出发,一步步深入了解列表的高级操作吧!基础语法介绍首先,我们需要明确几个核心概念:列......
  • 探秘Python中的链表:从零开始的奇妙之旅
    引言链表之所以重要,是因为它提供了一种灵活的方式来存储和操作数据集合。不同于数组,链表允许我们在无需重新分配内存的情况下动态地添加或删除元素。这使得它成为处理不确定大小数据集的理想选择。此外,在某些特定场景下(如实现缓存机制),链表可以比其他数据结构表现得更加出色......