自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 是时候将你的Python版本升级到3.8了!为什么我选择Python3.8?

你是否还在使用Python3.7,3.6……甚至是更老的Python版本?确实,尝试去使用一个比较“新”的Python版本存在一定风险,我们容易遇到一些问题:生态,各种库的支持,兼容性……不同版本的解释器存在差异,以前的项目还能不能继续使用是个问题……新的特性或者功能太香,我实在忍不住更新了却遭遇到bug……实际上,Python3.7的正式版最早发布于2018年06月15日,截止目前,Python3.7的最高版本是3.7.4(于2019年7月8日发布,距离现在的2020年7月已经有超过一年的

2020-07-30 16:39:17 29026 8

原创 Python搜索爬取淘宝商品信息并存储为csv文件(名称、店铺、销量、地址等)

功能是搜索某个商品,并把搜到的商品信息一一爬取:爬取商品名称、店铺名称、销量、评论数量、地址等等,然后把信息存储为csv文件…效果:首先是程序运行运行完后可以看到目录下出现了一个csv文件打开看看,还不错现在在淘宝搜索需要登录了,所以要把登录成功后得到的cookie塞进请求headers里才行;我这代码里面的cookie是掏的某位老哥的。。不能保证一直有效,所以最好还是用自己的...

2019-09-23 04:40:07 8965 14

原创 python十点半纸牌游戏教程

作品:十点半 / TenPointHalf(?)前言:这是我的python编程作业,一个python写的纸牌游戏。本文适合python入门新手,都是python基础知识*其实这个游戏我总共写了两次,第一次是按游戏的设计一步一步写的,那时我刚接触python,写的乱七八糟其实现在大概也差不多,不过有些进步就是了。。那么我把它写完了,结果后来老师说:用类的方法来写我一下子傻了看了看以...

2019-02-14 18:08:42 9161 3

原创 win11真正完全禁止自动更新

win11禁止自动更新

2023-06-04 19:38:50 28

原创 github ssh被屏蔽的解决方案

发现今天开始github的ssh都被屏蔽了,导致git命令没法用,之前只是屏蔽了https而已,唉。检查是否有安装connect$bash: connectconnect --- simple relaying command via proxy.Version 1.101usage: connect [-dnhst45] [-p local-port][-R resolve] [-w timeout] [-H proxy-server[:port]] [-S [user@]s

2022-05-26 15:32:23 1318 2

原创 Alibaba Cloud Linux 使用yum安装rpm源失败的解决方案 (例如安装PostgreSQL13)

我阿里云的系统是Alibaba Cloud Linux 2.1903 LTS 64位,它是基于Centos7开发的,所以理论上能够安装支持Centos7的软件。但是却隐含了一个大坑原因:Alibaba Cloud Linux系统的releasever变量是“2.1903”,而不是Centos7的“7”,这导致了安装识别的系统版本不对,造成失败。所以解决方案很简单,将rpm安装包下载,强制安装,随后将对应yum.repos.d文件中的$releasever替换成数字7即可。1.下载rpm包wget

2021-12-28 12:41:38 4101 2

原创 老牌装机神器“驱动精灵”的没落:随机挑选一名幸运儿进行限速、广告、全家桶……

你在装机或升级驱动时是否曾使用过驱动精灵、驱动人生等驱动管理软件?这类软件提供了一站式的驱动更新检测、升级下载、备份等十分便利的功能,我几乎每次装机都会在第一时间下载驱动精灵更新一下驱动,但随后便将之卸载……听起来是不是有点凄凉的感觉?确实,作为工具软件,“用之即弃”的命运难以避免,这也导致了工具类软件难以盈利的局面。今天我突然想更新一下电脑驱动,便到驱动精灵官网下载,这一下不要紧,却让我吓了一跳:双击安装,起初我看到这种捆绑勾选并不感到意外,因为现在的软件安装几乎都是这样,去掉勾选就完事了。

2021-10-10 01:44:42 10393 5

原创 宝塔面板美化主题样式,以蓝白配色为主的清新感

美化宝塔面板主题样式by Pure-Peace原来的宝塔面板样式不是很好看(绿油油,还有点老气),于是自己随手弄了套主题做宝塔面板的样式主要还是修改/www/server/panel/BTPanel目录下的html及css,__init__.py仅修改了默认Error的html,文章尾部会放出下载地址。效果如图最后把这个主题分享一波将压缩包内容解压到/www/server/panel/BTPanel目录即可。百度云:/s/1xBcxpHWmTp6PsHNPdyx13A提取码:kc

2021-07-16 23:27:49 2236 1

原创 VSCODE SSH 使用指定私钥登录服务器

在VSCODE安装remote-ssh插件选择Open SSH Configuration File以下是配置格式Host <服务器名称> HostName <地址> Port <端口> User <用户名> PreferredAuthentications publickey IdentityFile <私钥文件完整路径>配置完毕后选择Connect to Host即可用VSCODE连接到服务器,非常方便。...

2021-07-15 15:54:29 3433

原创 简单介绍Substrate:下一代区块链开发框架

Substrate区块链系统可以分为两部分:区块链基础部分(core)区块链功能部分(runtime)其中,区块链基础(core)一般由以下几部分构成:共识系统p2p连接与广播系统存储系统交易池系统RPC系统(也就相当于api,用于与外界交互)而区块链功能(runtime)有以下例子:比特币和以太坊1.0的记账方式——UTXO以太坊虚拟机,及智能合约系统,以太坊2.0的账户系统eos账户系统,及虚拟机随机数,对赌……等等的各种功能Substrate就是这样一个区块链

2021-06-09 17:37:46 5830 4

原创 Rust中的as和unsafe,修改不可变的结构体

#[derive(Debug)]pub struct Test { pub field: String,}impl Test { pub fn change(&self) { unsafe { let mutable_t: &mut Test = &mut *(self as *const Self as *mut Self); mutable_t.field = "changed".into()

2021-06-08 10:50:58 769

原创 Python获取文件哈希md5、sha256、sha512等方法

Python3计算获取文件、字符MD5、sha256、sha512、sha384、sha224、sha1,不多说,直接上代码。方便调用import osimport hashlib# 使用python3.8及以上可以用此方法,写法更简洁。def file_hash(file_path: str, hash_method) -> str: if not os.path.isfile(file_path): print('文件不存在。') return

2021-04-02 23:02:32 6803 5

转载 【译】Rust宏:教程与示例(二) - Rust过程宏,看完本文就会写!

原文标题:Macros in Rust: A tutorial with examples原文链接:https://blog.logrocket.com/macros-in-rust-a-tutorial-with-examples/公众号: Rust 碎碎念翻译 by: Praying知乎:https://www.zhihu.com/column/c_1186237256184029184感谢Praying大佬的翻译。上一篇文章讲解了Rust声明式宏 ,这篇文章将继续带你深入了解更复杂、也更.

2021-03-23 14:49:34 2273

转载 【译】Rust宏:教程与示例(一) - Rust声明式宏,看完本文就会写!

原文标题:Macros in Rust: A tutorial with examples原文链接:https://blog.logrocket.com/macros-in-rust-a-tutorial-with-examples/公众号: Rust 碎碎念翻译 by: Praying知乎:https://www.zhihu.com/column/c_1186237256184029184感谢Praying大佬的翻译。读完此篇教程,你应该就明白如何编写Rust声明式宏了。在本文中,我们将会.

2021-03-23 14:43:43 4779

原创 解决windows安装linux双系统,资源管理器看不见ext4分区的问题

问题核心:windows资源管理器并不原生支持ext4文件系统。解决方法:使用Ext2Fsd将ext4分区挂载到windows。接下来就详细说说安装完linux,在windows磁盘管理中可以看到磁盘0(我的linux盘),但是资源管理器看不到,原因就是资源管理器不支持ext4文件系统。接下来使用Ext2Fsd将其挂载到windows地址:http://www.acc.umu.se/~bosse/打开网站就可以看到下载地址我是win10系统,直接下载 Ext2Fsd-0.70b3w10-

2021-03-07 22:32:17 6348 2

原创 osu! - 深入了解2021年1月pp算法更新

osu! - 2021年1月16日pp算法更新更新摘要:关于AR11的改动:前言:AR是Approach Rate(缩圈速率)的缩写。AR11通常由AR10(或AR7.2以上的谱面 + HR)+ DT升级而成,是osu!模式的最高AR。AR11下的缩圈持续时间约为0.3秒,非常快。任何一个成绩的总pp由AIM(移动,也可称瞄准)、SPD(速度)、ACC(精准度)三者综合计算得到。在之前,你打任何AR高于10.33的谱面都会得到额外20%的SPD和AIM的pp加成(buff)。AR11要

2021-01-29 23:21:11 1668 3

原创 获取移动光猫(如HS8545M5等设备)pppoe密码明文

有时候忘记了自己的pppoe拨号密码,找回又很麻烦,这里教大家怎么把光猫的pppoe密码明文搞出来首先登录到你的光猫可以使用超级账户,因为超级账户的密码一般是与光猫型号对应,是固定的,上网就型号能搜到例如HS8545M5的超级账户密码是:CMCCAdmin aDm8H%MdA其它型号我不知道,你去百度搜索……登录后找到网络,宽带设置,注意到有内容的密码框这里密码被隐藏了,我们可以修改网页来让其显示右键审查元素/检查,定位到input输入框,之后将type="password"改为type=“

2021-01-19 01:31:58 49314 18

原创 职教书签

只剩下代码了。文章地址:https://www.52pojie.cn/thread-1208750-1-1.html/*职教书签v3date: 2020年6月30日version: 0.2.0author: Pure-Peace*/// vars --------------------------------const hrefs = []const arrowDown = 'am-icon-caret-down'const cl = 'class'const sp = '

2021-01-09 15:33:01 11792 38

原创 免费的地理位置信息geo-ip数据库maxmind

最近需要获取ip地址的地理位置信息(国家地区,经纬度等),就发现了maxmind。maxmind提供了免费的可在本地部署的geo-ip数据库(GeoLite2)(mmdb以及csv格式),和geo-ip查询api服务支持ipv4和ipv6的地理信息查询,以及ASN数据库(ip-运营商信息查询)maxmind官网:https://www.maxmind.com/en/home虽然使用别人提供的api服务无疑是最方便的,但是考虑到网络速度和效率,我希望在本地建立geo-ip数据库服务,这样查询一个ip

2020-12-28 23:10:29 13628 2

原创 Rust从&[u8] bytes中读取任意类型的整数(如i32, u32等多种类型)

我想实现一个read_integer() 函数,它接收一个&[u8] 切片,然后从切片中读取我们指定类型的整数就像这样:let slice = &data[1, 0, 0, 0];let i32_integer = read_integer::<i32>(slice);let u32_integer = read_integer::<u32>(slice);...也就是我给函数传什么类型的整数,他就得从切片里给我返回什么类型的整数。因为涉及了多种类型

2020-12-13 01:37:13 6295 2

原创 Postgresql使用触发器自动插入修改日志(记录),以及自动更新修改时间

触发器非常方便,它可以代替部分我们在后台代码里进行的手动操作我有一个用户表,里面有用户的id以及用户名。我还有一个用户更名日志表,用于记录用户名的改动记录,方便日后追踪。我希望使用触发器,让用户名被修改时自动插入用户名改动的日志!日志记录了用户的id,新名字以及旧名字,并且创建记录时自动记录当前的时间戳。并且,我希望使用触发器自动更新记录的修改时间。首先要创建用户表:id自增长,创建时间以及修改时间也是自动的。CREATE SCHEMA "user";CREATE TABLE "user

2020-12-03 00:02:29 2431

原创 Postgresql:查看执行一条SQL语句所用的时间及过程摘要

有时候需要进行SQL语句的优化,这时就需要先分析一下语句的执行情况:我们得知道语句执行花了多少时间,以及语句执行的过程。现在我有一个存放用户登录记录的表login_records,其中有100万条数据:SELECT COUNT(1) FROM "user"."login_records" WHERE "user_id" = 1000;查询一下表的行数,结果: count--------- 1000000(1 row)那么,我执行上面这条SQL语句花费了多长时间呢?在Postgre

2020-12-01 22:19:52 6659

原创 Redis安装(Windows 最新版本redis 5.0.9,以及redis 4.0)

好消息,现在可以在windows上安装新版本redis了!(5.0、4.0……)由于Redis官方并没有发布windows平台上的程序,所以几年前微软开源团队开始在github上维护windows平台上的redis,Github仓库:https://github.com/microsoftarchive/redis但是,4年前的微软开源团队只维护到了redis 3.0版本便不再更新,使得windows上可用的redis版本十分落后……然而,现在有一群志愿者站了出来,将redis的window

2020-10-25 03:11:45 33354 11

原创 Rust 编写一个简单,高并发的http服务(纯标准库,编译后168kb),附并发压力测试

这个简单的Rust程序只有两个文件:main.rs 和 index.htmlrelease编译二进制文件的大小约为168kb,只使用了标准库(跟官网案例差不多,但是有些不同)简单实现了路由功能,本地文件读取……优化了官网案例(例如512的buffer过小)接下来开始编写:首先找一个目录,创建index.html:<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8">

2020-10-20 20:01:25 14727 3

原创 Rust简单入门一文就够:开发环境搭建,开发工具及插件推荐,Hello World

Rust: “一门赋予每个人构建可靠且高效软件能力的语言。”这是在Rust官网上最显目的一句话,透露出了它的目标及特点:高效:性能强如C/C++,内存利用率高,能运行在嵌入式设备上,容易与其它语言集成可靠:语言体系能够保证内存安全和线程安全,编译器能够及时、尽早发现错误生产力:强大的包管理器,文档、友好的编译器和清晰的错误提示信息Rust官网:https://www.rust-lang.org/zh-CN/如果说,Go语言的背后是Google,Rust的背后则是Mozilla。Rust是

2020-10-16 19:35:36 4345 2

原创 如何在Nuxt.js中使用svg图标?以及nuxt.js与vue.js使用svg图标的区别

首先介绍一下Nuxt.js:Nuxt.js是一个基于 Vue.js的轻量级框架,可用来创建服务端渲染 (SSR) 应用,也可用于生成静态站点。官网:https://nuxtjs.org/使用Nuxt.js进行服务端渲染更利于SEO,这是我使用Nuxt.js的最大理由。但是Nuxt.js的项目结构以及一些配置写法与我平常编写的vue-cli项目还是存在不少区别,所以写下这篇文章记录下在Nuxt.js中使用svg图标的过程。首先,在nuxt中使用svg总共分为三步:1.创建vue组件首先在nuxt

2020-09-04 15:54:21 3037 3

原创 python制作服务器信息监控的api,支持多平台,基于flask和socketio

system-info-apipython的系统信息web api。包括restful和socketio,方便绘制可视化图表Python system information web api. Including restful and socketio, convenient to draw visual charts说明此项目包含基于flask的restful api以及socketio,分为两种方式提供服务。系统信息:背景线程将会每间隔数秒更新系统信息(cpu、内存、硬盘、负载等),并在本

2020-08-17 23:13:27 661

原创 Python获取系统及硬件信息(CPU、内存、硬盘、网络等),支持多平台 Windows、Linux

即可获取windows系统及硬件信息又可获取linux系统及硬件信息一站式,全平台!文章底部直接贴完整代码,先上介绍和函数说明system-info基于python3的linux和windows系统信息apilinux and windows system information apiGithub: https://github.com/Pure-Peace/system-infobased on: python3.8(基本python3以上即可)所有api均支持linux和wind

2020-08-17 04:55:35 14995 1

原创 Python3 ModuleNotFoundError: No module named ‘werkzeug.contrib‘

from werkzeug.contrib.cache import SimpleCache今天在执行上面这段代码时,Python解释器报错:ModuleNotFoundError: No module named 'werkzeug.contrib'首先使用pip查看当前已安装werkzeug的信息:pip show werkzeugName: WerkzeugVersion: 1.0.1Summary: The comprehensive WSGI web application l

2020-08-16 22:41:47 11878 3

原创 Flask-SQLAlchemy 在mysql数据库中使用JSON字段

话不多说,实践一下。首先创建我们的数据库模块 database.pyfrom flask_sqlalchemy import SQLAlchemy# mysqldb = SQLAlchemy()# mysql config(s)dbServer = 'localhost'dbCharset = 'utf8'dbPort = '3306'dbName = '数据库名'dbUser = '数据库用户名'dbPassword = '数据库密码'# connect mysqlde

2020-07-21 11:20:27 7122

原创 vue监听按下ctrl或shift

// 在页面钩子 mounted() 处调用此函数,增加按键监听事件watchKeyEvent () { const setKeyStatus = (keyCode, status) => { switch (keyCode) { case 16: if (this.onShfit === status) return console.log('shif', status ? '按下' : '抬起') this.onShfi.

2020-06-20 03:04:20 4689 1

原创 python调用.net c# dll动态库的例子,windows X509根证书管理器

最近发现了Pythonnet这个神奇的库,可以直接调用由.net编写的dll(ctypes只能调c/c++编写的dll)本文是一个python调用.net dll的简单实践Pythonnet官网:http://pythonnet.github.io/使用前先通过pip安装:pip install pythonnet主要使用clr的AddReference来添加对.net dll文件的引...

2020-04-15 04:41:59 557

原创 pyinstaller打包的一些注意事项和问题:找不到文件?!

1、将python程序打包成单文件(使用 -F 参数)后,运行程序,它实际上是先将exe内的资源文件解压到临时文件夹,然后再运行的,所以可能会有以下问题:比如,当你在程序里面调用一个外部exe时,但却提示找不到该exe文件。例子(这里我用win32api去隐式运行外部exe文件):import win32apiwin32api.ShellExecute(0, 'open', 'ngin...

2020-04-15 00:27:28 10519

原创 pyinstaller打包成无控制台程序时运行出错,与popen冲突的解决方法

有时候我们需要在程序里执行一些cmd命令,使用os或者其它模块中的popen方法去执行有一天,我把使用了os.popen方法的python程序用pyinstaller打包成exe(用了无控制台打包参数-w)双击运行时程序却弹框报错!我就有点纳闷:为什么有控制台打包出来的exe(不使用-w参数)可以运行,使用-w参数(无控制台)打包的却不能运行呢?首先,调用os.popen部分的代码大概...

2020-04-14 22:51:30 3805 3

原创 python找到端口占用,并杀死进程,windows

有时候我们发现电脑上某个端口被占用了,这就导致启动不了一些服务。而每次手动去找到并杀死进程实在是麻烦,于是用python写个自动的来整活。除了使用常见的os模块,本文还有提供使用win32api的例子主要面向windows平台首先,已知用cmd执行 netstat -aon | findstr "端口号" 可以找到占用端口的进程pid在python中可以使用 os 模块的 popen ...

2020-04-13 04:07:06 3773

原创 pyinstaller打包单文件时--uac-admin选项不起作用怎么办

使用pyinstaller能很方便的将python脚本打包成单个exe文件。但是最近有一个需求,打包出来的exe文件需要用管理员权限执行!也就是双击exe文件运行时,需要弹出一个uac界面让用户授权。于是我查找pyinstaller的官方文档,说是在打时包加上--uac-admin参数就行了!然而我实际操作了一下,发现直接加上这个参数仅在打包成多文件时有效 ,打包成单文件时是没用的。但是...

2020-04-07 21:04:03 2957 6

原创 js实现类似python中time.sleep()的方法,ES7

主要使用了es6语法:async,awaitfunction sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms));}async function doSomething() { await sleep(3000); console.log('已经等待了3秒!!');}// ...

2020-03-28 08:08:09 1909

原创 Python深度遍历查找字典键对应的值,在多层嵌套的字典中找到你要的数据

!!这是一个直接可用的方法!!看看效果!我们有这样一个多层嵌套的多维字典:# 老千层饼data = { '千层饼': { '你以为我是第一层': { '其实我是第五层': '呵呵', '其实还有': { '肉弹葱鸡': ['哦!'], '又千层了'...

2020-03-24 16:04:21 10062 8

原创 用vue-cli3和electron快速构建桌面程序:vue-cli-electron-template,支持i18n多语言,一个模板

vue-cli-electron-template使用vue-cli3和Electron6构建的桌面应用模板,使用自定义的无原生边框窗口,并包含了vue-router、vue-i18n、axios等常用部件,以及一些演示功能。-介绍-基于vue-cli & electron-builder,添加了常用插件及演示功能。您可以愉快的在本项目中使用svg图标,舒适的使用i18n多国语言支...

2020-03-13 20:51:32 2601 1

原创 python猜拳小游戏,十多行代码搞定,一个很短的写法

*简单的用python实现和电脑玩猜拳……只是娱乐一下,看看最少能用几行代码写出来)先上代码,非常短import randomdef judgement(plat): # 判断游戏结果 if plat.count(plat[0]) > 1: # 平局 return 2 return plat.index(max(plat)) if sum(pla...

2020-03-05 23:31:44 3522

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除