Skip to content

Instantly share code, notes, and snippets.

@batok
Created July 6, 2009 19:57
Show Gist options
  • Save batok/141642 to your computer and use it in GitHub Desktop.
Save batok/141642 to your computer and use it in GitHub Desktop.
import wx
import socket
from wsgiref.simple_server import make_server
from threading import Thread
from datetime import datetime
class WebServer(Thread):
def __init__(self, window):
Thread.__init__(self)
self.window = window
def doit(self, environ, start_response):
status = "200 OK"
headers = [('Content-type', 'text/html')]
start_response( status, headers )
req = environ.get("PATH_INFO","").split("/")[-1]
if req != "do":
return "<html><body>Boo!</body></html>"
sc_date = datetime.now()
wx.CallAfter(self.window.WebRequest, sc_date)
return "<html><body>Done at %s</body></html>" % sc_date
def run(self):
s = make_server("", 8000, self.doit)
s.serve_forever()
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1, "I have a wsgi server", size = ( 400,100))
self.label = wx.StaticText(self, -1,"")
WebServer(self).start()
self.Bind(wx.EVT_CLOSE, lambda evt: self.Destroy())
def WebRequest(self, sdate):
self.label.SetLabel( "web request at %s" % sdate)
if __name__ == "__main__":
app = wx.PySimpleApp()
Frame().Show()
app.MainLoop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment