您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python 制作手机归属地查询工具(附源码)

51自学网 2021-10-30 22:46:58
  python
这篇教程python 制作手机归属地查询工具(附源码)写得很实用,希望能帮到您。

Hello,大家好,我来敷衍你们了 [捂脸],今天还是用Tkinter做一个GUI小工具,用于手机归属地查询。我将代码放在了博文中,程序打包好放在蓝奏云。

一.预览

1.启动

2.执行查询

二.源代码

1.GUI

from tkinter import *from tkinter import ttkfrom tkinter import messageboxfrom Get_Attr import Get_Infosimport reimport threadingclass App:  def __init__(self):    self.root=Tk()    self.root.title('手机号码归属地查询-v1.0')    self.root.resizable(0,0)    width=410    height=390    left=(self.root.winfo_screenwidth()-width)/2    top=(self.root.winfo_screenheight()-height)/2    self.root.geometry('%dx%d+%d+%d'%(width,height,left,top))    self.create_widet()    self.set_widget()    self.place_widget()    self.root.mainloop()  def create_widet(self):    self.l1=ttk.Label(self.root)    self.e1=ttk.Entry(self.root)    self.b1=ttk.Button(self.root)    self.lf=ttk.LabelFrame(self.root)    self.l2=ttk.Label(self.lf)    self.e2=ttk.Entry(self.lf)    self.l3=ttk.Label(self.lf)    self.e3=ttk.Entry(self.lf)    self.l4=ttk.Label(self.lf)    self.e4=ttk.Entry(self.lf)    self.l5=ttk.Label(self.lf)    self.e5=ttk.Entry(self.lf)    self.l6=ttk.Label(self.lf)    self.e6=ttk.Entry(self.lf)    self.l7=ttk.Label(self.lf)    self.e7=ttk.Entry(self.lf)    self.b1.config(command=lambda:self.thread_it(self.search_infos))  def set_widget(self):    self.e2_var=StringVar()    self.e3_var=StringVar()    self.e4_var=StringVar()    self.e5_var=StringVar()    self.e6_var=StringVar()    self.e7_var=StringVar()    self.l1.config(text='请输入手机号:')    self.b1.config(text='查询')    self.lf.config(text='查询结果')    self.l2.config(text='手机号码:')    self.l3.config(text='所属省份:')    self.l4.config(text='所属城市:')    self.l5.config(text='区   号:')    self.l6.config(text='邮   编:')    self.l7.config(text='类   型:')    #将字符串变量绑定Entry组件    self.e2.config(textvariable=self.e2_var)    self.e3.config(textvariable=self.e3_var)    self.e4.config(textvariable=self.e4_var)    self.e5.config(textvariable=self.e5_var)    self.e6.config(textvariable=self.e6_var)    self.e7.config(textvariable=self.e7_var)    self.root.bind('<Escape>',self.escape)    self.root.bind('<Return>',self.do_search)  def place_widget(self):    self.l1.place(x=30,y=20)    self.e1.place(x=130,y=20)    self.b1.place(x=290,y=20)    self.lf.place(x=30,y=60,width=350,height=300)    self.l2.place(x=60,y=10)    self.e2.place(x=150,y=10)    self.l3.place(x=60,y=50)    self.e3.place(x=150,y=50)    self.l4.place(x=60,y=90)    self.e4.place(x=150,y=90)    self.l5.place(x=60,y=130)    self.e5.place(x=150,y=130)    self.l6.place(x=60,y=170)    self.e6.place(x=150,y=170)    self.l7.place(x=60,y=210)    self.e7.place(x=150,y=210)  def search_infos(self):    pn=self.e1.get()    #判断输入类型,必须为11位数字    if re.match('/d{11}',pn):      result=Get_Infos().get_infos(pn)      self.e2_var.set(pn)      self.e3_var.set(result['province'])      self.e4_var.set(result['city'])      self.e5_var.set(result['areacode'])      self.e6_var.set(result['zip'])      self.e7_var.set(result['company'])    else:      messagebox.showwarning('警告','输入有误,请检查!')  #使用线程防止UI界面卡死  def thread_it(self,func,*args):    t=threading.Thread(target=func,args=args)    t.setDaemon(True)    t.start()  def escape(self,event):    self.root.destroy()  def do_search(self,event):    self.thread_it(self.search_infos())if __name__ == '__main__':  a=App()

2.Get_Attr

import jsonimport requestsfrom urllib.parse import urlencodeclass Get_Infos():  def __init__(self):    self.url='http://apis.juhe.cn/mobile/get?'    self.headers={      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'    }  def get_infos(self,phone_num):    params={      'phone':phone_num,      'key':'7a2b367a62fa24108b1f27ed4c84c97a',      'dtype':''    }    r=requests.get(self.url+urlencode(params),headers=self.headers)    _json=json.loads(r.text)    if _json.get('resultcode')=='200':      result=_json.get('result')      item={}      item['province']=result.get('province')      item['city']=result.get('city')      item['areacode']=result.get('areacode')      item['zip']=result.get('zip')      item['company']=result.get('company')      return item    else:      return False

三.总结

本次使用Tkinter制作了一款手机归属地查询小工具,简单调用了一个接口,基本上没有什么难度,就是为了水一篇博客[狗头],程序打包好了放在了这里思路、代码方面有什么不足欢迎各位大佬指正、批评!

以上就是python 制作手机归属地查询工具(附源码)的详细内容,更多关于python 手机归属地查询的资料请关注51zixue.net其它相关文章!


python pyppeteer 破解京东滑块功能的代码
用python制作个论文下载器(图形化界面)
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。