kafei000 发表于 2022-2-13 00:58

python请求头格式化_tkinterk可视化源码




应自己需求,自己编写的一个python请求头格式化小工具,基于python实现,使用了tkinter库进行可视化,pyinstaller 进行打包


功能:请求头格式化,格式化结果自动粘贴到剪贴板
特点:
    - 不会修改key,value字符串,(不会删去字符串里的空格),具体看工具贴
    - V1.1.2 新增自动复制格式化结果到剪贴板


对应工具贴:https://www.52pojie.cn/thread-1585760-1-1.html
例子:
输入: 复制代码 隐藏代码
:authority: blog.csdn.net:method: GET:path: /qq_30468133/article/details/ 84946416:scheme: httpsaccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9accept-encoding: gzip, deflate, braccept-language: zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7
输出: 复制代码 隐藏代码
headers = {    ':authority': 'blog.csdn.net',    ':method': 'GET',    ':path': '/qq_30468133/article/details/ 84946416',    ':scheme': 'https',    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',    'accept-encoding': 'gzip, deflate, br',    'accept-language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7'}
基于python实现,使用了tkinter库进行可视化,pyinstaller 进行打包


源码: V1.1.2
import tkinter as tk

def headers_format():
    headers_str = tbox_in.get("0.0", "end")   # 0行第0号位置,end:最后一个位置
    # print(headers_str)
    # 去除参数头尾的空格并按换行符分割
    headers_str = headers_str.strip().split('\n')
    headers = "headers = {\n"
    for x in headers_str:
      if x == ':':
            index = x.index(':', 1)
            key = x[:index].strip()
            value = x.strip()
      else:
            key = x.split(':', 1)
            value = x.split(':', 1)
      headers = headers + "    '" + key.strip() + "': '" + value.strip() + "',\n"
    headers = headers[:-2] + "\n}"
    win.clipboard_clear()# 创建一个新的空白剪贴板,(一个剪贴板有多个剪贴记录)
    win.clipboard_append(headers) # 调用了tk.call(('clipboard', 'append'), 复制内容到剪贴板
    tbox_out.delete(0.0, tk.END)
    tbox_out.insert('end', headers)


if __name__ == '__main__':
    win = tk.Tk()
    win.title("请求头格式化")
    # geometry:几何形状
    win.geometry("620x470+500+150")
    win.resizable(0, 0)
    '''frame1、2、3框架建立'''
    frame1 = tk.LabelFrame(win, text="输入框")
    frame1.grid(row=0, column=0, sticky='nsew', padx=60, pady=20)
    frame2 = tk.LabelFrame(win, text='')
    frame2.grid(row=2, column=0)
    frame3 = tk.LabelFrame(win, text="输出框")
    frame3.grid(row=3, column=0, padx=10, pady=10)

    '''frame1框架配置,一个输入框'''
    tbox_in = tk.Text(frame1, width=70, height=10)
    tbox_in.grid(row=0, column=0)
    '''frame2框架配置,background:背景(按钮)颜色;foreground:前景(文字)颜色'''
    button1 = tk.Button(frame2, text="请求头格式化", width=15, height=2, background='#148FED', foreground='white', command=headers_format)
    button1.grid(row=0, column=0)# sticky默认为'center'
    '''frame3框架配置,一个输出框'''
    tbox_out = tk.Text(frame3, width=70, height=10)
    tbox_out.grid(row=0, column=0)

    win.mainloop()


经历:
   最近接了一个tkinter的项目,有源码,要添加功能,之前tkinter学了一点,但是处于半吊子状态,缺少好的项目练习,尤其是布局方面。看了项目源码之后感觉茅塞顿开,不像编写计算器那种。看了项目源码最大的收获就是 LabelFrame + grid布局,感觉非常好用
   V1.1.1 版本代码写的不能看,V1.1.2 就重写可视化部分代码,使用LabelFrame + grid布局,算是一个小小的练习。
   感觉可视化有些鸡肋,只有需要用到了才会花时间练习下,但是真的用tkinter做出好看的界面就感觉很牛x,pysimplegui好像是基于tkinter实现的,不知道用起来怎么样,有坛友涉猎可以告诉以下,pyqt感觉太臃肿了,做些小工具也用不上。




zm55555 发表于 2022-2-13 09:12

谢谢分享!

MyModHeaven 发表于 2022-2-13 12:50

这不叫“可视化”吧。可视化是将数据转换成图形或图像,而 tkinter 是用来创建 GUI 应用程序的库

iiii12 发表于 2022-2-13 13:04

谢谢楼主666666666666666666

kafei000 发表于 2022-2-13 15:53

MyModHeaven 发表于 2022-2-13 12:50
这不叫“可视化”吧。可视化是将数据转换成图形或图像,而 tkinter 是用来创建 GUI 应用程序的库

可视化界面。。。。

NNYY 发表于 2022-2-14 10:34

感谢楼主分享!

89684828 发表于 2022-2-14 17:32

标记一下,谢谢楼主!

fuxirjf 发表于 2022-2-22 14:04

楼上说的好像有点道理哈哈

前哥 发表于 2022-3-2 17:39

大佬,M1下打不开啊,提示launch error,解决下啊,对于MAC下来说很好用啊

kafei000 发表于 2022-3-2 18:39

前哥 发表于 2022-3-2 17:39
大佬,M1下打不开啊,提示launch error,解决下啊,对于MAC下来说很好用啊

工具贴置顶了一个mac版本
页: [1] 2
查看完整版本: python请求头格式化_tkinterk可视化源码