好友
阅读权限20
听众
最后登录1970-1-1
|
应自己需求,自己编写的一个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
[Python] 纯文本查看 复制代码 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[0] == ':':
index = x.index(':', 1)
key = x[:index].strip()
value = x[index+1:].strip()
else:
key = x.split(':', 1)[0]
value = x.split(':', 1)[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感觉太臃肿了,做些小工具也用不上。
|
免费评分
-
参与人数 1 | 吾爱币 +7 |
热心值 +1 |
收起
理由
|
苏紫方璇
| + 7 |
+ 1 |
欢迎分析讨论交流,吾爱破解论坛有你更精彩! |
查看全部评分
|