小贞贞python关于requests和tkinter模块项目实战

xiaozhenzhen 2019-10-29 原文

小贞贞python关于requests和tkinter模块项目实战

requests模块主要是用于网页的请求,获取相应数据

tkinter模块是python基于GUI的一个模块,大致模块如下:

具体可参照:https://www.cnblogs.com/shwee/p/9427975.html

今天给大家介绍,自制翻译小工具的具体项目实战:

整体是实现方式:

步骤一:通过requets模块请求百度翻译

步骤二:通过tkinter模块制作界面,将界面输入的内容传入requests模块,然后点击“翻译”按钮,显示requests模块返回的数据

步骤三:制作成一个exe的小程序

一、请求百度翻译:建议使用谷歌浏览器,右键的“检查”,反复点击‘翻译’按钮,找到正确翻译的请求的地址,

 查找方式:主要是通过在response中找到请求响应返回的数据

二、通过pip安装requests模块,可直接百度安装方法,打开pycharm,编写代码如下

步骤一:导入模块

 步骤二:创建translate方法,主要用于请求百度翻译,获取翻译结果

 步骤三:实例化一个窗口对象,并进行创建按钮、单行文本框,并进行按钮触发translate方法,将翻译结果返回显示在文本标签中

 

三、打包成一个exe的可执行程序

步骤一:安装Pyinstaller,命令pip install Pyinstaller

步骤二:打包成exe

cmd进入dos命令,通过cd命令进入该程序文件目录,执行命令:pyinstaller -F -w –icon=xxx.ico xxx.py –noconsole。

其中,-F表示生成单exe可执行文件,-w表示窗体程序,xxx.py是自己创建的python文件名

–icon是设置exe的显示图标,–noconsole 表示不展示cmd窗口,反过来想看cmd窗口就改成–console。*.ico文件可以到网上ico矢量图在线转换工具处理

http://www.faviconico.org/

一阵刷屏之后,终于打出成功的提示:

程序目录下多了几个文件夹:一个spec文件,build文件夹,一个dist文件夹,其中的dist文件夹内就是我们生成的exe应用程序:

该处参考:https://www.cnblogs.com/jackzz/p/9431923.html

 

该处具体代码:

# -*-coding:utf-8 -*-
#导入requests模块,主要是用于发送http请求
import requests
#导入tkinter模块,主要用于实现窗口的设计
import tkinter as tk
#定义一个方法,将输入输入的strl作为参数传入,请求翻译地址,然后将翻译结果返回
def translate():
url = "https://fanyi.baidu.com/v2transapi?from=zh&to=en"
#请求的头部,主要用于模拟浏览器进行请求
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36",
"Referer": "https://fanyi.baidu.com/"}
#将用户输入的内容传入我们的请求参数中
trans_text = trans_1.get()
strl = trans_text
print(trans_text)
data = {"query": strl,
"from": "zh",
"to": "en"}
#发送post请求,将其响应的内容转为json格式
response = requests.post(url,headers=headers,data=data).json()
#返回的json串中获取翻译的结果
response_last = response['trans_result']['data'][0]['dst']
#后续GUI界面中写入翻译后的结果
my_lable2["text"]=response_last

#实例化一个窗口对象
window = tk.Tk()
#给窗口的可视化去名字
window.title('翻译窗口')
#设定窗口的大小(长与宽)
window.geometry('500x300')
#设置窗口是否可变长、宽,True:可变,False:不可变
window.resizable(width=False, height=True)
#在图形界面上设定标签,设定标签内容,字体、字体大小颜色及标签宽高
my_lable = tk.Label(window,text='我的英文翻译器',fg='blue',font=('Arial',20,'bold'),width=30,height=2)
#放置标签,自动调节尺寸,有pack()和place()方法
my_lable.pack()
#用于占一行空白,保持间距
my_lable4 = tk.Label(window, height=1)
my_lable4.pack()
#输入框,明文显示,show='*'则表示密文显示
trans_1 = tk.Entry(window,show=None,font=('Arial',14))
trans_1.pack()
#用于占一行空白,保持间距
my_lable3 = tk.Label(window, height=1)
my_lable3.pack()
#创建翻译按钮,调用translate方法
trans_btn = tk.Button(window,text='翻译',bg='orange',font=('Arial',12,'bold'),width=15,height=2,command=translate)
trans_btn.pack()
my_lable1 = tk.Label(window, text='翻译结果如下:',fg='green', font=('Arial', 12), width=30, height=2)
my_lable1.pack()
#该标签用于显示翻译后的结果,在translate方法中有调用它的text属性,将翻译结果显示
my_lable2 = tk.Label(window, fg='green',font=('Arial', 12), width=30, height=2)
my_lable2.pack()
#窗体循环,会让window不断的刷新,相关于一个while循环,每点击一次就会更新一次
window.mainloop()



备注:该代码没有做输入的格式等进行容错处理,大家可进行改进

发表于
2019-10-29 18:55 小贞贞 阅读() 评论() 编辑 收藏

 

版权声明:本文为xiaozhenzhen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaozhenzhen/p/11760797.html

小贞贞python关于requests和tkinter模块项目实战的更多相关文章

随机推荐

  1. three.js模拟实现太阳系行星体系

    概况如下: 1、SphereGeometry实现自转的太阳; 2、RingGeometry实现太阳系星系的公转 […]...

  2. DDD实战与进阶 – 值对象

    目录 DDD实战与进阶 – 值对象 概述 何为值对象 怎么运用值对象 来看一个例子 值对象的持久化 […]...

  3. Flutter – Migrate to AndroidX

    一段时间没玩Flutter,今天打开一个项目编译了一下,突然发现不能编译了,出现 Launching lib\ […]...

  4. 在PyCharm上运行FairMOT(win10)

    效果图(github项目原图) 有新问题会及时写上(有任何该项目部署的问题可以私信我或者在评论区交流) 1. […]...

  5. C# 开源框架(整理)

    Json.NET  http://json.codeplex.com/ Json.Net 是一个读写Json效 […]...

  6. 怎样实现前端裁剪上传图片功能

    由于前端是不能直接操作本地文件的,要么通过<input type="file">用户点击选择文件或 […]...

  7. 如何下载这幅DigitalGlobe卫星图?

      用这个方法可以提前预览较清晰的图                                      […]...

  8. io流函数略解(java_input流)[二]

    背景 在写这篇随笔之前,已经写了io流函数略解(java_File)(一),主要是总结了File的一些操作,以 […]...

展开目录

目录导航