首页 文章 精选 留言 我的

精选列表

搜索[后台管理模板],共10000篇文章
优秀的个人博客,低调大师

python的Socket网络编程 使用模板

相关说明 本文给出的是TCP协议的Socket编程。 其中用了一个dbmanager数据库操作模块,这个模块是我自己定义的,可以在我的另一个文章中找到这个模块的分享。python操作mysql数据库的精美实用模块 服务段完整代码 【如下代码,完全复制,直接运行,即可使用】 import socket import threading import json from tools import dbmanager #这个模块是我自定义的,可以在我的另一个文章中找到这个模块的分享 ################################### ####服务器参数 #################################### HOST = '0.0.0.0' #ip 0.0.0.0 表示本机所有ip地址 PORT = 9905 #端口号 Max_Listen =10 #最大监听数 BUFSIZ = 1024 #每次接收数据长度 ENDMARK = "messageover" #信息结束标记 #################################### ####业务处理函数 #################################### def searchuser(sock, dict_data): the_searchstring = dict_data['par'] #########构造sql语句 sqlstring0 = "SELECT * FROM hr_user WHERE id>0 " if the_searchstring != None and the_searchstring != "": sqlstring0 = sqlstring0 + " AND (username LIKE '%" + the_searchstring + "%')" ########执行数据库查询 data0 = dbmanager.executeSelectAllback(sqlstring0) if data0 == False: message = {'action': 'Error_SqlConnet'} sock.sendall(json.dumps(message).encode("utf-8")) ####发送数据给客户端 return if data0 != None: message = {'action': 'SearchUser_Success'} message['data'] = data0 sock.sendall(json.dumps(message).encode("utf-8")) ####发送数据给客户端 return #################################### ####线程处理函数 #################################### def readRequest(sock, addr): print('Accept new connection from %s:%s...' % addr) allresponse = "" while True: ########接收数据 data = sock.recv(BUFSIZ).decode('utf-8') if len(data): allresponse = allresponse + data if ENDMARK not in allresponse: continue if allresponse == "": break ########处理数据 allresponse =allresponse[:-len(ENDMARK)] dict_data = json.loads(allresponse) action = dict_data['action'] if action == "SearchUser": searchuser(sock, dict_data) #业务处理 break elif action == "SearchCompany": break #业务处理 else: break ########关闭连接 sock.close() print('Connection from %s:%s closed.' % addr) #################################### #程序入口 #################################### if __name__ == "__main__": #####创建一个socket the_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # AF_INET指定使用IPv4协议 #SOCK_STREAM指定使用面向流的TCP协议 #####绑定端口 the_socket.bind((HOST, PORT)) #####监听端口 the_socket.listen(Max_Listen) print('Waiting for connection...') while True: # 接受一个新连接 sock, addr = the_socket.accept() # 创建新线程来处理TCP连接 the_thread = threading.Thread(target=readRequest, args=(sock, addr)) the_thread.start() #################################### 客户端完整代码 【如下代码,完全复制,直接运行,即可使用】 import socket import json ############################################################################################# ####参数 ############################################################################################# HOST = '127.0.0.1' PORT = 9905 BUFSIZ = 1024 ENDMARK = "messageover" ############################################################################################# #######请求处理函数 ############################################################################################# def issueRequest(action, par): # 创建一个socket the_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: try: the_socket.connect((HOST, PORT)) except: print("服务器连接失败!") return ############################# try: ########发送数据: message = {} message['action'] = action message['par'] = par last_message = json.dumps(message) + ENDMARK # son.dumps()将 Python 对象编码成 JSON 字符串 print(message) the_socket.sendall(last_message.encode("utf-8")) ########接收数据 allresponse = "" while True: response = the_socket.recv(BUFSIZ).decode('utf-8') if len(response): allresponse = allresponse + response continue if allresponse == "": break #######处理数据 dict_data = json.loads(allresponse) # json.loads()将已编码的 JSON 字符串解码为 Python 对象 action = dict_data['action'] if action == "SearchUser_Success": data0 = dict_data['data'] print(data0) break elif action == "Error_SqlConnet": print("数据查询失败!") break else: break except: print("服务器连接异常,数据查询失败!") finally: #######关闭连接 the_socket.close() #################################### #程序入口 #################################### if __name__ == "__main__": the_searchstring ="张三" issueRequest("SearchUser", the_searchstring) 本文如有帮助,敬请留言鼓励。 本文如有错误,敬请留言改进。

优秀的个人博客,低调大师

pyqt5的runJavaScript 使用模板

runJavaScript 的说明 QWebEnginePage 有一个 runJavaScript 方法,支持回调函数。 使用方法1 只运行JavaScript,没有回调 def run_js(self): js_string = ''' alert("hello,world!"); ''' self.webview.page().runJavaScript(js_string) 使用方法2 运行JavaScript,并存在回调 def run_js2(self): js_string = ''' function myFunction() { return document.body.scrollWidth; } myFunction(); ''' self.webview.page().runJavaScript(js_string , self.js_callback) # 回调函数 def js_callback(self,result): print(result) QMessageBox.information(self, "提示", str(result)) 完整代码,如下所示。 【如下代码,完全复制,直接运行,即可使用】 import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtWebEngineWidgets import QWebEngineView ################################################ #######创建主窗口 ################################################ class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('My Browser') self.showMaximized() #####放入WebEngineView self.webview = WebEngineView() self.webview.load(QUrl("https://www.baidu.com")) self.setCentralWidget(self.webview) #####web页面加载完毕,调用函数 self.webview.page().loadFinished.connect(self.run_js) self.webview.page().loadFinished.connect(self.run_js2) ########运行js脚本,没有回调######## def run_js(self): js_string = ''' alert("hello,world!"); ''' self.webview.page().runJavaScript(js_string) ########运行js脚本,有回调######## def run_js2(self): js_string = ''' function myFunction() { return document.body.scrollWidth; } myFunction(); ''' self.webview.page().runJavaScript(js_string , self.js_callback) # 回调函数 def js_callback(self,result): print(result) QMessageBox.information(self, "提示", str(result)) ################################################ #######创建浏览器 ################################################ class WebEngineView(QWebEngineView): windowList = [] # 重写createwindow() def createWindow(self, QWebEnginePage_WebWindowType): new_webview = WebEngineView() new_window = MainWindow() new_window.setCentralWidget(new_webview) #new_window.show() self.windowList.append(new_window) #注:没有这句会崩溃 return new_webview ################################################ #######程序入门 ################################################ if __name__ == "__main__": app = QApplication(sys.argv) w = MainWindow() w.show() sys.exit(app.exec_()) 本文如有帮助,敬请留言鼓励。 本文如有错误,敬请留言改进。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册