• Python可视化界面


    可视化界面程序,本来不想写,只在console台运行就好,但是后来很多小伙伴都有这样的需求:

    需要从redis中删除某个key的value,然后需要跟key去查,有些小伙伴不会用redis,就产生如下的产物。

    可以看出main后面的tk对象,Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。Python3.x 版本使用的库名为 tkinter,即首写字母 T 为小写。其他的没啥特别的嘱咐,导入模块后,创建控件,指定控件的master,告诉GM(geometry manager)有个控件产生了,这里就不讲控件排版了,我实在审美不好……

    # coding=utf-8
    '''
    Created on 2018-07-28
    updated on 2018-08-06
    @author:
    Description:封装Redis三条命令,可以清理测试环境短信次数上限
    
    import redis, json
    import configparser
    from tkinter import *
    global phone
    '''
    
    def connectRedis():
    
        confInfo = configparser.ConfigParser()
        confInfo.read('config/config.ini')
        redisHost = confInfo.get('redis_45', 'host')
        # redis基本操作,消耗资源,每链接一次之后就断开了
        # re = redis.Redis(host=redisHost, port=6379, db=4, decode_responses=True),
        pool = redis.ConnectionPool(host=redisHost, port=6379, db=XXX, decode_responses=True)
        re = redis.StrictRedis(connection_pool=pool)
        return re
    
    
    def checkPhone(phoneNum):
        # 传phone进来
        smsKey = 'uc_user_sms_times_' + str(phoneNum)
        print(smsKey)
        result_re = connectRedis()
        # print()
        try:
            if result_re.get(smsKey) is None:
                print('没有记录,无需清理。')
        except Exception as e:
            print("获取key对应的内容出错!")
            #raise e
    
        try:
            if result_re.get(smsKey) is not None:
                result = json.loads(result_re.get(smsKey))
    
                # smsCodeTimes是短信验证码次数
                smsCodeTimes = result['4']['num']
                print(smsCodeTimes)
    
                #测试环境是10次,线上5次,线上没权限清理,测试环境改了的话就可以改这个参数
                if int(smsCodeTimes) == 10:
                    result_re.delete(smsKey)
    
                    # 清除成功
                    print('清除成功!')
                else:
    
                    # 不足次数,可继续使用
                    print('不足次数,可继续使用!')
        except Exception as e:
            print("出现未知错误!")
            raise e
    
    def buttonBut():
    
        phoneNum = phone.get()
        checkPhone(phoneNum)
    
    
    if __name__ == '__main__':
    
        # 创建窗口对象
        mainWindow = Tk()
        # 设置窗口大小
        mainWindow.geometry('300x200')
        # 禁止拖动窗口
        mainWindow.resizable(0, 0)
        phone = StringVar()
        mainWindow.title("限制解除")
        Label(mainWindow, text="请正确输入要清除限制的手机号:", padx=10).grid(row=0, sticky=W)
        Entry(mainWindow, textvariable=phone).grid(row=1, column=0)
        Button(mainWindow, text="清除次数上限", command=buttonBut).grid(row=2, sticky=SE)
        mainWindow.mainloop()
    

      

  • 相关阅读:
    XML及XML的解析
    单例设计模式(Singleton)的优化
    Java反射初识
    TCP协议的简单应用一
    Java中实现线程同步的三种方法
    Java集合框架Map接口
    JDK1.8新特性之Stream类初识
    Java JDK1.8新特性之四大函数式接口
    tomcat 启动报 找不到 StrutsPrepareAndExecuteFilter。。
    easyjweb ejs 2014.2.25
  • 原文地址:https://www.cnblogs.com/yuki-nana/p/11093046.html
Copyright © 2020-2023  润新知