我们在测试过程中,经常要配置host,切换不同的host来实现测试不同服务器的目的。
通常的作法是打开drivers/etc/hosts,然后输入ip、域名,配置host后,开始测试。
如果遇到要在不同host之间切换,那么上述打开文件,编辑host内容的步骤要反复进行,比较麻烦。
或者有时候用notepad++和notepad打开hosts文件后,格式不一样,输入ip、域名后有时候不能生效。
网上有很多切换host的工具,比如switchhosts,在这里,我们来通过一个示例的小程序,来说明下小工具到底怎么实现的,达到自动配置host的目的,减少手工操作。
下面是代码说明
#coding:utf-8
import wx
import os
class Frame(wx.Frame):
def __init__(self):#工具的显示和相关处理
wx.Frame.__init__(self,None,-1,'SwithHosts Example',size=(1000,600))
panel=wx.Panel(self,-1)
ReadButton = wx.Button(panel, label = u'打开host',pos = (225,5),size = (80,25))
ReadButton.Bind(wx.EVT_BUTTON, self.Read)#给button添加事件
saveButton = wx.Button(panel, label = u'保存host',pos = (315,5),size = (80,25))
saveButton.Bind(wx.EVT_BUTTON,self.Save)#给button添加事件
self.filename = 'C:WindowsSystem32driversetchosts'#host文件路径
self.contents = wx.TextCtrl(panel, pos = (5,35),size = (500,250), style = wx.TE_MULTILINE)
hbox=wx.BoxSizer()
hbox.Add(ReadButton,proportion=0,flag=wx.RIGHT|wx.HORIZONTAL)
hbox.Add(saveButton,proportion=0,flag=wx.RIGHT|wx.HORIZONTAL)
hbox.Add(self.contents,proportion=1,flag=wx.EXPAND|wx.ALL)
panel.SetSizer(hbox)
def Read(self,event):#读取host文件并显示在工具中
file = open(self.filename)
all_the_text=file.read()
self.contents.SetValue(all_the_text)
def Save(self,event):#读取工具中的输入内容后写入到host中
value=self.contents.GetValue()
file = open(self.filename,'w')
file.write(value)
file.close()
if __name__ == "__main__":
app=wx.PySimpleApp()
frame=Frame()
frame.Show()
app.MainLoop()
具体实现的效果