三思而后行:谨慎使用你的装饰器
在学会使用装饰器之后,我们可能时不时地在心理暗示下使用它,下面是我个人总结的一些代码实践中遇到的问题,主要参考 这一篇 中关于装饰器链式调用中讨论的问题。 最佳实践 Decorators were introduced in Python 2.4, so be sure your code will be run on >= 2.4. Decorators slow down the function call. Keep that in mind. You cannot un-decorate a function. (There are hacks to create decorators that can be removed, but nobody uses them.) So once a function is decorated, it’s decorated for all the code. Decorators wrap functions, which can make them hard to debug. (This gets better...
如何通过网卡名称获取其所对应的 IP 地址
代码如果项目中有用到 netifaces 或者 psutil 库,可以直接使用下面的方法: 直接调用第三方库 netifacesdef via_netifaces(): """ 调用第三方模块netifaces :return: """ ip_list = [] for interface in netifaces.interfaces(): if interface not in ['lo', 'sit0']: b = netifaces.ifaddresses(interface).get(netifaces.AF_INET) if b: for link in b: ip_list.append(link['addr']) return ip_list psutildef get_net...
2020 面试记录(持续更新)
存储文件存储和块存储的区别 存储方式 技术实现 优势 劣势 典型代表 块存储 裸盘上划分逻辑卷,逻辑卷格式化成任意文件系统 支持多种文件系统,传输速度快,提供硬件容错机制 无法实现网络共享 FC-SAN,iSCSI 文件存储 在格式化的磁盘上存储文件 提供网络共享 网络传输速度制约读写速度,分层目录结构限制可扩展性 NFS,FAT,EXT3 对象存储 以灵活可定制的对象为存储单元,元数据服务器提供快速并发寻址 读写速度较快的同时支持网络共享,对象灵活定义 管理软件的购买、使用和运维成本高 Swift 存储设备不同 对象存储:对象存储的对应存储设备为 swift,键值存储,CEPH 的 RADOS。 文件存储:文件存储的对应存储设备为 FTP,NAS,NFS 服务器,Ceph 的 CephFS。 块存储:块存储的对应存储设备为 Cinder,硬盘,IPSAN、FCSAN、CEPH 的 RBD。 特点不同 对象存储:对象存储的特点是具备块存储的高速以及文件存储的共享等特性,只能进行全写全读,存储数据以大文件为主,要求足够的 IO 带宽。 文件存储...
Hexo 同时使用两种主题(博客与 wiki 页面实现统一管理)
更新@depracate 由于一些难以预料的错误(如页面锚点无法点击跳转(不确定是否确实为子系统导致)),本人已将 wiki 和主站作为两个仓库分割。所以本内容现在只作为参考,遇到具体问题请自行搜索解决。 缘起想在博客系统的基础上搭建一个 wiki 系统 ,用于实现一些非原创知识体系的积累。当然可以通过创建两个 hexo 仓库分别用于渲染博客页面(主题一)和 wiki 页面(主题二);但是每次进行知识管理的时候就要切换不同的仓库目录,而且部分文件可能产生冗余(如:npm install 产生的 node_modules),所以本文实践利用一个 hexo 仓库内渲染生成使用不同 theme 生成主页和 wiki 页面,以实现一次部署和统一管理。 TL;DR使用代替配置文件-配置 | Hexohexo --helpGlobal Options: --config Specify config file instead of using _config.yml root 目录下有两个 config 文件,默认使用_config.yml,用hexo --config config...
解决博客 idealyard 支持 emoji 显示问题
注意 以下演示内容基于数据库版本:mysql --versionmysql Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1 utf8mb4 的最低 mysql 版本支持版本为 5.5.3+ 前言我们知道要想让数据库存储数据支持 emoji 显示必须将数据库编码格式设置为utf8mb4,可是我在代码中修改了数据库编码还是有问题,具体见此处 Issues ,当时列出下面的怀疑: 数据库设置为utf8mb4编码; 单个表格编码未设置为utf8mb4; 由于前端使用pangujs导致传到后端已经出错; 昨晚进行了排查及解决,现在记录一下。 排查 首先查看数据库编码格式MariaDB [iyblog_product]> show create database iyblog_product;+----------------+---------------------------------------------------------------------------...
不问色号 | 口红色号获取之烈艳蓝金系列
引言在项目 给你点颜色瞧瞧|GUSCSS 的 不问色号 模块中,需要收集口红的颜色,本文以西集网烈焰蓝金系列唇膏为例,演示如何通过简单的爬虫获取图片,之后使用 OCR 技术对图片文字进行识别,同时获取图片特征颜色部分作为口红的 RGB 色值。 使用 urllib.request 获取网页import urllib.requestfrom backend import settingsdef get_html(url): response = urllib.request.urlopen(url) # 发出请求并且接收返回文本对象 html = response.read() # 调用read()进行读取 return htmlif __name__ == '__main__': url = settings.DIOR_LYLJ_URL print(get_html(url)) 返回结果 File "/usr/local/lib/python3.7/urllib/request.py", line 649...
如何用 Python 识别图片文字(基于百度 OCR API)
做项目的时候需要用到文字识别功能,以下是对一些方案的实践,最后选择了百度文字识别 API,其他的要么是云服务器内存太小,要么是 CPU 太低,没法用。还是直接找最简单快捷的办法。 百度文字识别 api安装pip install baidu-aip 代码from aip import AipOcrfrom backend import secretsclass BaiduOCR: def __init__(self): self.client = AipOcr(secrets.APP_ID, secrets.API_KEY, secrets.SECRET_KEY) self.options = {"language_type": "CHN_ENG", "detect_direction": "true", "detect_language": "true", "p...








