PySimpleGUI小试牛刀之Tomcat项目部署工具

本文介绍了使用PySimpleGUI创建一个图形化界面,用于管理并自动化Tomcat项目的部署。工具解决了在多机器、多项目环境下,手动部署的繁琐步骤和易出错问题。内容包括安装PySimpleGUI、编写核心代码及打包运行的注意事项。
摘要由CSDN通过智能技术生成

之前写过一篇 python 自动化部署项目,实现了Tomcat项目的初级自动化部署功能,但是它有一个不足,只支持单个项目部署,也就是说,项目被高度定制化了,所有的配置信息都被固化在了程序里,无法扩展。所以今天,我们给它来个小小的升级,让这个工具以界面图形化的方式运行,在这个界面上,支持对要部署的Tomcat项目进行管理。该工具主要解决以下问题(痛点):

系统作了负载均衡处理,项目被分开存放在了多个不同的机器上,同时每个机器上也有多个项目,每次部署的时候,都需要工程师们手动在不同的目录之间来回切换,手动复制、粘贴、备份系统,手动删除缓存文件,手动启停web服务,步骤繁琐且容易出错。此时,如果能有一款工具,能够帮助我们自动化完成这些操作,解放工程师们的双手,应该算是大功一件了!

so,先来张效果图,让我们直观感受下。

 下面正式开始!

1. 安装pysimplegui

pip install pysimplegui

 2. 编写核心代码

import os
import json
import time
import shutil
import threading
import webbrowser
from gui_helper import GuiHelper
from auto_release import AutoRelease
from PIL import Image as pil_image
import PySimpleGUI as sg

class ProjectDeploy():

    # 配置文件
    project_file = 'project.json'
    
    left_layout_key = 'left_layout'
    
    right_layout_key = 'right_layout'
    
    default_right_layout_key = 'default_right_layout'
    
    background_image = 'background_image.png'

    # 窗口元素的背景色
    element_background_color = '#FCFCFC'
    
    def run(self):
        self.load_win()
    
    '''
    加载窗口
    '''
    def load_win(self, old_window=None):
        # 获取屏幕宽高
        (width, height) = GuiHelper.get_window_size()
        win_height = int(height)
        left_win_width = 150
        right_win_width = width - left_win_width
        
        default_right_column_layout = [
            GuiHelper.text_input('点击左侧按钮,新建一个项目'),
        ]
        image = pil_image.open(self.background_image)
        src_image_size = image.size
        background_image_size = (min(src_image_size[0], int(right_win_width*0.7)), min(src_image_size[1], int(win_height*0.7)))
        default_right_column_layout.append([sg.Image(filename=self.background_image, size=background_image_size)])
        
        left_columns = [
            sg.Column(self.load_left(), key=self.left_layout_key, size=(left_win_width, win_height), background_color=self.element_background_color)
        ]
        right_columns = [
            sg.Column(default_right_column_layout, key=self.default_right_layout_key, size=(right_win_width, win_height), background_color=self.element_background_color),
            sg.Column(self.load_right(), key=self.right_layout_key, visible=False, size=(right_win_width, win_height), background_color=self.element_background_color, scrollable=True, vertical_scroll_only=True)
        ]
        left_frame = sg.Frame('', [left_columns], background_color=self.element_background_color, border_width=1)
        right_frame = sg.Frame('', [right_columns], background_color=self.element_background_color, border_width=0)
        
        layout = [[
            sg.Column([[left_frame]], pad=(0,0), background_color=self.element_background_color),
            sg.Column([[right_frame]], pad=(30,0), background_color=self.element_background_color)
        ]]
        if old_window is not None:
            old_window.close()
        window = GuiHelper.create_window('Tomcat项目部署工具', layout = layout)
        event_list = self.load_events()
        if event_list is not None:
            for event_item in event_list:
                window[event_item[0]].set_cursor(cursor='hand2')
        GuiHelper.listen_window(window, event_list)
        GuiHelper.close_window(window)
      
    '''
    加载左侧布局
    '''
    def load_left(self):
        left_colu
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值