Flask 项目里想统一捕获所有异常,文档里通常这样写: 123@app.errorhandler(Exception)def handle_exception(exc): pass 但在我项目里怎么都不生效——异常总是从 flask_restx 打出,返回 internal server error。 原因怀疑是 flask_restx(或 flask_restful)在框架层提前抓住了异常,没有往上抛,Flask 自然接不到。 翻了一下 flask_restx 源码,尤其是 f...
在多个文件中搜索汉字
写代码时加了不少中文注释,现在需要批量找出来改掉。用正则匹配汉字编码就能搞定。 正则表达式1^((?!(\*|//)).)+[\u4e00-\u9fa5] 在 IDE 的全局搜索里启用正则模式,粘贴上述表达式,即可定位包含汉字、且不在注释行(* 或 // 开头)里的内容。
将医师定考模拟测评试题批量导出为 PDF
给朋友帮忙,想把某市医师服务协会网站上的定考模拟测评试题导出成 PDF,方便在手机上学习。 第一步:从网页抓取试题 JSON经过操作分析,网页上每道试题都是一条 JSON 数据。代码没有混淆和加密,可以直接在浏览器 Console 里调用已有接口批量拉取。 123456789101112131415161718192021var bbresult = [];for (var i = 0; i < ordersortArray.length; i++) { var ne...
在 Python Flask 程序中发起 request 请求时卡死的问题
Flask 程序部署在三个 Pod 的 Deployment 里,业务需要向三个 Pod 各发一条消息通知。暂时不想引入消息队列,于是用 Kubernetes Python 库取出三个 Pod IP,直接 requests.post 三遍——方法粗糙,但轻量地解决了问题。 12345resp = requests.post( url, data=json.dumps(data_info, sort_keys=True, default=str), headers=...
打印 Python dict/list 对象后用 FEHelper 查看
用 Python Kubernetes 库查询某个 namespace 下的 Pod 时,返回的结果集嵌套很深,想找到 Pod IP 得翻半天。 问题直接 print 出来的不是 JSON,None 和 datetime 对象 FEHelper 无法识别;直接 json.dumps 又会报错: 1TypeError: Object of type datetime is not JSON serializable 解决办法加一个 default=str 参数即可: 12345all_po...
在 K8S 环境中构建基于 Python Flask 的 WebSocket 推送架构
业务上需要搭建一个能推送消息的架构,现有服务端基于 Python Flask 构建。下面记录代码实现和 K8S + HAProxy 两层负载均衡下的会话保持方案。 代码部分服务端服务端需要集成 socketio,参考 python-socketio 官方示例。记得把 async_mode 改成 gevent。 前端前端测试页面,需要替换 <Server IP>: 1234567891011121314151617181920212223242526272829303132333...
pip 安装时遇到 Microsoft Visual C++ 14.0 or greater is required
在 Windows 上用 pip 安装部分包时,如果缺少 C++ 编译环境,会报如下错误: 12error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/[end of output] 网上能找到的不少教程已经过期了。...
查看 kubectl config 文件中的权限信息
调试 K8S 问题时,手里往往只有一份 kubeconfig,却不知道当前用户到底有哪些权限。其实证书里就藏着答案——把 client-certificate-data 或 .crt 文件用 OpenSSL 解析一下,就能拿到 Group 和 User,再去集群里查对应的 RoleBinding 即可。 解析证书把 config 文件中的 client-certificate-data 内容,或者 .crt 文件拿出来,用 OpenSSL 解析: 12345# 直接处理 base64 内容...
用sed替换掉特定字符串后的指定内容
工作中遇到了这么一个需求:有一段没有格式的 JSON 字符串,需要把其中的 key 为 name 的值改成 new-webhook-config,用 sed 可以完成这个工作。 原始内容1{"apiVersion":"admissionregistration.k8s.io/v1beta1","kind":"MutatingWebhookConfiguration","metadata&qu...
调用Jira API统计一段时间每个账户内ticket被resolved的数量
Jira 是不能分组统计的,只能在 dashboard 里用二维表格统计,但是如果查询语句是 status changed to resolved by,统计表格里是不能显示出来 resolved by 这个用户名的。 之前同事手动做了特别多的查询,然后把这些查询放到 Confluence 里进行统计,所以就想用 Jira API 分账户统计一下。 完整脚本1234567891011121314151617181920212223242526272829303132333435363738...