当前位置: 首页 > news >正文

在ps中如何做网站框架wordpress 评论 重复

在ps中如何做网站框架,wordpress 评论 重复,wordpress 微博,营销型网站与普通网站的比较需求 开发软件的时候不可避免要和数据库发生交互#xff0c;但是有些 SQL 请求非常耗时#xff0c;如果在主线程中发送请求#xff0c;可能会造成界面卡顿。这篇博客将会介绍一种让数据库请求变得和前端的 ajax 请求一样简单#xff0c;且不会阻塞界面的异步请求方法。 实…需求 开发软件的时候不可避免要和数据库发生交互但是有些 SQL 请求非常耗时如果在主线程中发送请求可能会造成界面卡顿。这篇博客将会介绍一种让数据库请求变得和前端的 ajax 请求一样简单且不会阻塞界面的异步请求方法。 实现过程 在实现异步请求之前需要先明确一下函数签名 def sqlRequest(service: str, method: str, slot, params: dict None )各个参数的解释如下 service: 业务名method: 接口名slot: 拿到数据后调用的回调函数params: 请求参数 总体流程如下图所示包括子界面发送请求、数据库线程处理请求、主界面调用回调函数来消费响应结果三个步骤。 信号总线 在 Qt 中子线程无法直接更新主界面只能发送信号通知主线程然后在主线程中更新界面。在之前的博客《如何在 pyqt 中实现全局事件总线》介绍了信号总线的使用通过引入信号总线可实现任意层级的组件之间的通信。 本文的信号总线只含有两个信号一个用来请求数据一个用来消费数据 class SignalBus(QObject): Signal bus fetchDataSig Signal(SqlRequest) # 请求数据信号dataFetched Signal(SqlResponse) # 响应数据信号signalBus SignalBus()class SqlRequest: Sql request def __init__(self, service: str, method: str, slotNone, params: dict None):self.service serviceself.method methodself.slot slotself.params params or {}class SqlResponse: Sql response def __init__(self, data, slot):self.slot slotself.data data发送请求 子界面中通过调用 sqlRequest() 函数来发起异步 SQL 请求该函数只是将参数封装为 SqlRequest 对象然后通过 signalBus 的 fetchDataSig 信号发送给数据库子线程 def sqlRequest(service: str, method: str, slotNone, params: dict None): query sql from database request SqlRequest(service, method, slot, params)signalBus.fetchDataSig.emit(request)比如下图中商品类型下拉框的数据就来自于数据库 在组件 LicenseCard 中使用下述代码就能完成数据的请求和消费组件库参见 https://qfluentwidgets.com/zh/ from qfluentwidgets import HeaderCardWidget, ComboBoxclass LicenseCard(HeaderCardWidget):def __init__(self, parentNone):super().__init__(许可证, parent)self.goodsComboBox ComboBox(self)# 请求商品信息sqlRequest(goodsService, listAll, lambda i: self.onGoodsFetched(i))def onGoodsFetched(self, goods: List[Goods]): 将商品信息添加到下拉框中 for good in goods:self.goodsComboBox.addItem(good.name, userDatagood)处理请求 子线程 DatabaseThread 中维护着一个请求队列 tasks每当收到信号总线的 fetchDataSig 信号时就会使用反射机制将请求中携带的 service 和 method 字符串转换为数据库业务类的方法指针并将这个指针添加到队列中等待调用。调用方法返回的数据会被封装为 SqlResponse 对象接着通过信号总线发送给主界面。 class DatabaseThread(QThread): Database thread def __init__(self, db: QSqlDatabase None, parentNone):super().__init__(parentparent)self.database Database(db, self)self.tasks deque()# 处理请求信号signalBus.fetchDataSig.connect(self.onFetchData)def run(self): 处理请求 while self.tasks:task, request self.tasks.popleft()result task(**request.params)signalBus.dataFetched.emit(SqlResponse(result, request.slot))def onFetchData(self, request: SqlRequest): 将请求添加到队列中 service getattr(self.database, request.service)task getattr(service, request.method)self.tasks.append((task, request))if not self.isRunning():self.start()class Database(QObject): Database def __init__(self, db: QSqlDatabase None, parentNone):super().__init__(parentparent)self.orderService OrderService(db)self.userService UserService(db)self.goodsService GoodsService(db)处理响应结果 主界面中只需将信号总线的 dataFetched 信号连接槽函数然后在槽函数中对取出 response 对象中的数据并调用回调函数来消费数据即可 from qfluentwidgets import MSFluentWindowclass MainWindow(MSFluentWindow): 主界面 def __init__(self):super().__init__()# 处理响应结果signalBus.dataFetched.connect(self.onDataFetched)def onDataFetched(self, response: SqlResponse):if response.slot:response.slot(response.data)总结 在这篇博客中我们使用子线程和信号总线完成了异步数据库请求操作界面所使用的组件全部来自于 https://qfluentwidgets.com/zh/ 以上~~
http://www.yutouwan.com/news/389953/

相关文章:

  • 女网友叫我一起做优惠券网站方正悠黑使用网站建设侵权么
  • 给我免费看播放片优化网站标题名词解释
  • 所见即所得网站管理系统wordpress 不能登录
  • jsp网站开发四酷全书昆明网签备案查询
  • 做seo网站不用域名网站怎么搭建
  • 公司网站制作制作杭州室内设计公司排行榜
  • 网站开发 方案 报价单网站做推广页需要什么
  • 建设网站 (公司)网站建设及维护合同
  • 在线代理服务器网站什么网站可以自己做字
  • 公司网站自己创建百度网址大全pc版怎么下载
  • 镇江企业网站制作丽江网站开发找千素网
  • 一级a做爰片免费网站 小说男和女做暖暖网站
  • 可以做微信推文的网站万网阿里云域名查询
  • 河南网站建设运营域名注册公司搭建网站需要什么
  • 珠海微网站进入淘宝电商运营基础知识
  • 国内外html5网站建设状况wordpress 魔客
  • 本站3天更换一次域名yw补习吧 一家专门做家教的网站
  • 蓝众建站_专业网站建设网站没有内容 备案能成功吗
  • 广州网站设计服务商微信小程序商城需要多少钱
  • 有没有转门做乐器演奏的网站手机网页视频下载软件
  • 企业网站的价值建设银行新加坡招聘网站
  • 侠客推 网站建设增城网站开发
  • 网站专题策划页面怎么做手机兼职快递录单员
  • 境外电商平台入驻seo管理与优化期末试题
  • 桃城区网站制作公司下载中国建设银行app
  • ckeditor for wordpress 设置seo优化行业
  • 订阅号可以建设微网站网站登录页面
  • 网站开发移动端免费咨询宠物医生在线
  • 英文网站字体大小试述电子商务网站的建设流程
  • 域名的网站建设方案书网站开发那种语言好