def main(): network = Network() httpThread = HttpServer(network) webSocketThread = WebSocketServer(network) webSocketThread.start() httpThread.start()
class Main: def __init__(self): self.Logs = Logs(self) self.Configs = Configs(self) self.DataUnits = DataUnits(self) self.HttpClient = HttpClient(self) self.HttpServer = HttpServer(self) self.Manipulator = Manipulator(self) def start(self): self.HttpServer.start()
def main(): #Setup server = HttpServer("192.168.87.110", debug=False) drive = DifferentialDrive(2, 0, 4, 16) def mainLoop(): while True: x, y = server.getJoystick() drive.setInput(x, y) drive.Update() yield int(10) loop = asyncio.get_event_loop() loop.create_task(mainLoop()) server.start()
from HttpServer import HttpServer from HttpProxyServer import HttpProxyServer from HttpProxyServer import ProxyAnalyzer import atexit if __name__ == "__main__": httpServer = HttpServer(8080) analyzer = ProxyAnalyzer(8091) proxy_server = HttpProxyServer(8090, analyzer) try: analyzer.setDaemon(True) analyzer.start() atexit.register(analyzer.stop) proxy_server.setDaemon(True) proxy_server.start() httpServer.setDaemon(True) httpServer.start() atexit.register(httpServer.stop) atexit.register(proxy_server.stop) httpServer.join() proxy_server.join() analyzer.join() except KeyboardInterrupt: pass finally: exit(0)
class MainWindow(QMainWindow): def __init__(self): super().__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle('Our api') self.httpd = HttpServer() self.httpd.request_text_change.connect(self.add_to_request) self.httpd.client_text_change.connect(self.add_to_client) self.httpd.response_text_change.connect(self.add_to_response) self.httpd.start() self.ui.saveSession.clicked.connect(self.save_session) self.ui.resetSession.clicked.connect(self.reset_session) self.ui.testClientGet.clicked.connect(self.run_test_client_get) self.ui.testClientPost.clicked.connect(self.run_test_client_post) self.ui.apiSummary.clicked.connect(self.show_api) self.session_string = '' self.ui.requestText.setReadOnly(True) self.ui.clientText.setReadOnly(True) self.ui.responseText.setReadOnly(True) def add_to_request(self, request_text): request_type, request_string = request_text.split(',') self.ui.requestText.setText(request_string) request_log = f"""\n\n ################### NEW REQUEST ################### \t{request_string}\t ################################################### """ self.session_string += request_log def add_to_client(self, client_text): self.ui.clientText.setText(client_text) request_log = f"Client details\n{client_text}\n" self.session_string += request_log def add_to_response(self, response_text): self.ui.responseText.setText(response_text) request_log = f"\nResponse\n{response_text}\n\n" self.session_string += request_log def save_session(self): file_name, _ = QFileDialog.getSaveFileName(self, "Session File", "", "Text Files (*.txt)") if file_name: with open(file_name, "w") as session_file: session_file.write(self.session_string) def reset_session(self): self.session_string = '' self.ui.requestText.clear() self.ui.clientText.clear() self.ui.responseText.clear() def run_test_client_get(self): get_client = ClientGet(self) get_client.setModal(False) get_client.show() def run_test_client_post(self): post_client = ClientPost(self) post_client.setModal(False) post_client.show() def show_api(self): definitions = Definitions('definitions.ini') definitions.load() api_dialog = ApiDialog(self, definitions.definitions_dict) api_dialog.setWindowTitle('API Functions') api_dialog.setModal(False) api_dialog.show()
class Main: ''' Collects data from a specified year ano - year of the data to be collected ''' def collect_data(self, ano): bd = BaseDados() print "STARTED COLLECTING DATA FOR YEAR", ano bd.criar_tabelas() bd.preencher_tipos_estabelecimento(ano) bd.preencher_tabelas_gerais(ano) print "FINISHED COLLECTING DATA FOR YEAR", ano pass pass #--------------------------------- # Constroi as estatisticas # # years - anos para gerar estatisticas # groupby - campos pelos quais são agrupadas # count - o que contar #--------------------------------- def get_statistics(self, years, groupby, count): bd = Dados() # transforma os elementos de years activos em string filtered_years = self.filter_active(years) # transforma os elementos de groupby activos em string filtered_groupby = self.filter_active(groupby) # constroi o título a dar ao gráfico title = """Total number of {0} for years {1} grouped by {2}""".\ format(count + 's', ','.join(['200' + str(i) for i in filtered_years]), ','.join([str(i) for i in filtered_groupby])) # se tudo estiver bem gera gráfico data = bd.get_statistics(filtered_years, filtered_groupby, count) # adiciona a página à bd db = BaseDados() file_name = db.insert_custom_list(title, 1) # Cria a página HTML com a estatistica html = Html() html.create_statistics_page(title, data, filtered_groupby, file_name) # cria o ficheiro CSV csv = CriarCSV() csv.escrita_csv(title, file_name, data) # gera o gráfico graph = Graphs(data, title) pass pass #-------------------------- # Retorna uma lista com os itens que tenham a segunda posição a True # # list_to_be_filtered - lista a ser filtrada #-------------------------- def filter_active(self, list_to_be_filtered): # cria a lista a ser devolvida filtered_list = [] # se o item for True adiciona à lista a ser devolvida for l in list_to_be_filtered: if l[1] == True: filtered_list.append(l[0]) pass pass # altera a ordem da lista filtered_list.reverse() # retorna a lista filtrada return filtered_list pass #--------------------------- # Menu estatisticas #--------------------------- def get_lists(self, select, years): print "get_lists" # transforma os elementos de years activos em string filtered_years = self.filter_active(years) # transforma os elementos de groupby activos em string filtered_select = self.filter_active(select) # constroi o título a dar à lista title = """List of {0} for years {1}""".\ format(','.join([str(i) for i in filtered_select]), ','.join(['200' + str(i) for i in filtered_years])) # retorna os dados da base de dados bd = Dados() data = bd.get_lists(filtered_select, filtered_years) # adiciona a página à bd db = BaseDados() file_name = db.insert_custom_list(title, 0) # cria o ficheiro CSV csv = CriarCSV() csv.escrita_csv(title, file_name, data) # Cria a página HTML com a estatistica html = Html() html.create_lists_page(title, data, filtered_select, file_name) pass pass #--------------------------- # Menu HTTP # # generate_html - if true generates HTML #--------------------------- # Inicia o servidor http def http_start_server(self, generate_html): # inicia o servidor self.http_server = HttpServer() self.http_server.start() if generate_html == True: # cria páginas html = Html() html.create_index() pass pass # Pára o servidor http def http_stop_server(self): self.http_server.stop() pass pass
import sys sys.path.append("..") # TODO 如何更优雅的导入顶层包到 sys.path ??? import wx from View.MainFrame import MainFrame from View.LoginDialog import LoginDialog from HttpServer import HttpServer class Application(wx.App): def OnInit(self): self.MainFrame = MainFrame(None) self.LoginDialog = LoginDialog(self.MainFrame) LoginResult = self.LoginDialog.ShowModal() if LoginResult == 1: self.MainFrame.Show() self.SetTopWindow(self.MainFrame) return True else: return False if __name__ == '__main__': server = HttpServer('0.0.0.0', 8080) print 'HTTP Server Running...........' server.start() app = Application(redirect=False) app.MainLoop() server.stop()
import sys sys.path.append("..") # TODO 如何更优雅的导入顶层包到 sys.path ??? import wx from View.MainFrame import MainFrame from View.LoginDialog import LoginDialog from HttpServer import HttpServer class Application(wx.App): def OnInit(self): self.MainFrame = MainFrame(None) self.LoginDialog = LoginDialog(self.MainFrame) LoginResult = self.LoginDialog.ShowModal() if LoginResult == 1 : self.MainFrame.Show() self.SetTopWindow(self.MainFrame) return True else : return False if __name__ == '__main__': server = HttpServer('0.0.0.0', 8080) print 'HTTP Server Running...........' server.start() app = Application(redirect=False) app.MainLoop() server.stop()