<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[harry]]></title><description><![CDATA[业精于勤，荒于嬉；行成于思，毁于随]]></description><link>https://blog.youkuaiyun.com/whw1874</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; whw1874]]></copyright><item><title><![CDATA[将wsl系统安装到D盘，释放C盘空间]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/153395502</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/153395502</guid><author>whw1874</author><pubDate>Thu, 16 Oct 2025 10:33:16 +0800</pubDate><description><![CDATA[本文介绍了WSL系统迁移的完整步骤：1)查看当前WSL状态；2)关闭运行中的WSL；3)将现有系统导出为tar文件；4)注销原系统；5)导入备份文件到新位置；6)设置默认发行版；7)启动迁移后的WSL。整个过程通过命令行完成，主要涉及wsl的导出/导入功能，适用于需要将WSL迁移到其他磁盘或路径的情况。操作前需确保目标目录存在，并可通过版本参数指定WSL2。]]></description><category></category></item><item><title><![CDATA[django-ninjia 下载文件显示中文名称]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/133028399</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/133028399</guid><author>whw1874</author><pubDate>Tue, 19 Sep 2023 14:35:11 +0800</pubDate><description><![CDATA[【代码】django-ninjia 下载文件显示中文名称。]]></description><category></category></item><item><title><![CDATA[python中字典是有序的还是无序的]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/132316306</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/132316306</guid><author>whw1874</author><pubDate>Wed, 16 Aug 2023 11:46:40 +0800</pubDate><description><![CDATA[python中字典在3.6之后是有序的，在3.6之前是无序的。这里的有序是指的是插入顺序。]]></description><category></category></item><item><title><![CDATA[3DES加密算法及Python实现]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/132293072</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/132293072</guid><author>whw1874</author><pubDate>Tue, 15 Aug 2023 10:27:57 +0800</pubDate><description><![CDATA[【代码】3DES加密算法及Python实现。]]></description><category></category></item><item><title><![CDATA[springboot中@ConfigurationProperties注解自动装配属性不成功原因]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/128182319</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/128182319</guid><author>whw1874</author><pubDate>Mon, 05 Dec 2022 10:25:57 +0800</pubDate><description><![CDATA[springboot中@ConfigurationProperties注解自动装配属性不成功原因]]></description><category></category></item><item><title><![CDATA[mongodb aggregate中，使用$unwind对数组中的字典对象求和]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/121666493</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/121666493</guid><author>whw1874</author><pubDate>Wed, 01 Dec 2021 22:36:55 +0800</pubDate><description><![CDATA[在monggodb聚合操作中有时会对数组对象中的数据求和

$unwind 会把数组中的数据分多条数据，数组外公共数据相同

{'_id': ObjectId('61a783dd74e4719e37f6e84e'), 'name': 'dahai', 'data': [{'k1_name': '语文', 'score': 78}, {'k2_name': '数学', 'score': 90}, {'k3_name': '英语', 'score': 80}]}

$unwind后会变成三条数据

{'_id']]></description><category></category></item><item><title><![CDATA[ModuleNotFoundError: No module named ‘pip._internal.cli.main‘ 解决办法]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/119855943</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/119855943</guid><author>whw1874</author><pubDate>Sun, 22 Aug 2021 18:34:12 +0800</pubDate><description><![CDATA[最近新项目，使用conda创建了python3.7的环境，无法使用pip安装



网上最多的解决方法是：

python -m ensurepip

python -m ensurepip python -m pip install --upgrade pip setuptools wheel

对我来说无效

使用两条命令成功解决：

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python get-pip.py
...]]></description><category></category></item><item><title><![CDATA[docker 的daem.json 和 key.json]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/119280486</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/119280486</guid><author>whw1874</author><pubDate>Sat, 31 Jul 2021 19:49:05 +0800</pubDate><description><![CDATA[daem.json是docker的配置文件,默认安装docker后是没有的，可以手动创建


[root@localhost ~]$ vim /etc/docker/daemon.json
{
    "authorization-plugins": [],
    "data-root": "",   # 设置docker运行时的根目录
    "dns": [],         # 设置容器的DNS地址
    "dns-opts": [],    # 设置容器的/etc/resolv.conf文件.]]></description><category></category></item><item><title><![CDATA[tornado中使用motor异步连接mongodb]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/119222127</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/119222127</guid><author>whw1874</author><pubDate>Thu, 29 Jul 2021 22:36:19 +0800</pubDate><description><![CDATA[tornado使用pymongo连接mongodb数据库是阻塞的方式，访问量大的时候就会出现阻塞的情况，

这时可以使用motor模块去解决，motor是MongoDb的异步python驱动程序。


pip install motor 安装motor模块

编写server.py


import os
import tornado.ioloop
from tornado import gen
import tornado.web
import motor


class Index(tornado.w.]]></description><category></category></item><item><title><![CDATA[对标celery的分布式函数调度框架]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/118686082</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/118686082</guid><author>whw1874</author><pubDate>Mon, 12 Jul 2021 23:07:12 +0800</pubDate><description><![CDATA[分布式函数调度框架，支持5种并发模式，20种消息中间件，20种任务控制功能。
]]></description><category></category></item><item><title><![CDATA[mysql 窗口函数]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/118337803</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/118337803</guid><author>whw1874</author><pubDate>Tue, 29 Jun 2021 16:13:53 +0800</pubDate><description><![CDATA[窗口函数的区别
rank()

排名为相同时记为同一个排名, 并且参与总排序

dense_rank() over (PARTITION BY xx ORDER BY xx [DESC])

排名相同时记为同一个排名, 并且不参与总排序

row_number() over (over (PARTITION BY xx ORDER BY xx [DESC]))

排名相同时记为下一个排名

窗口函数在hive sql中经常使用, 也可在 mysql 8.0 之上的版本中使用
...]]></description><category></category></item><item><title><![CDATA[tornado的IOLoop.instance()方法和IOLoop.current()方法区别]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/118219465</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/118219465</guid><author>whw1874</author><pubDate>Fri, 25 Jun 2021 14:36:12 +0800</pubDate><description><![CDATA[在使用tornado时，经常有人疑惑IOLoop.instance()方法和IOLoop.current()方法的区别是什么。

IOLoop.instance()

返回一个全局 IOLoop实例。

大多数应用程序在主线程上运行着一个全局IOLoop，使用IOLoop.instance()方法可以在其他线程上获取这个实例。



IOLoop.current()

返回当前线程的IOLoop，如果IOLoop当前正在运行或已被make_current标记为当前，则返回该实例。如果没有当前IOLoop，.]]></description><category></category></item><item><title><![CDATA[python中的+=与+区别 ，为什么有时+=不可变变量内存地址不变？]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/117513015</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/117513015</guid><author>whw1874</author><pubDate>Thu, 03 Jun 2021 10:43:53 +0800</pubDate><description><![CDATA[对于可变对象，+ 操作改变了值，id肯定会变，而+= 是本地操作，其值原地修改

对于+号操作，可变对象和不可变对象调用的都是__add__操作

对于+=号操作，可变对象调用__add__，不可变对象调用的是__iadd__(不可变对象没有__iadd__) __iadd__是原地修改


...]]></description><category></category></item><item><title><![CDATA[python 字典操作易出错的地方]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/117092774</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/117092774</guid><author>whw1874</author><pubDate>Thu, 20 May 2021 22:17:41 +0800</pubDate><description><![CDATA[dic = {"a":1,"b":2}

1.给一个自字典中获取一个不存在的键时设置默认值

正确方法：

dic.get("c",0)

错误方法：

dic.get(“c”，default=0)

运行报错：TypeError: get() takes no keyword arguments



2.使用pop删除字典中的一个键时会返回该键对应的值，删除一个不存在字典中的键时要设置默认值否则会报错



&gt;&gt;&gt; dic
{'c': 1, 'a': 2, 'b': 3}
&gt;..]]></description><category></category></item><item><title><![CDATA[Python多进程编程]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/116275223</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/116275223</guid><author>whw1874</author><pubDate>Thu, 29 Apr 2021 19:10:31 +0800</pubDate><description><![CDATA[阅读目录

1. Process
	2. Lock
	3. Semaphore
	4. Event
	5. Queue
	6. Pipe
	7. Pool
序. multiprocessing
python中的多线程其实并不是真正的多线程，如果想要充分地使用多核CPU的资源，在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing，只需要定义一个函数，Python会完成其他所有事情。借助这个包，可以轻松完成从单进程到并发执行的转换。multiprocess]]></description><category></category></item><item><title><![CDATA[MySQL架构原理之MySQL运行机制]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/116262011</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/116262011</guid><author>whw1874</author><pubDate>Thu, 29 Apr 2021 10:31:54 +0800</pubDate><description><![CDATA[①建立连接（Connectors&amp;Connection Pool），通过客户端/服务器通信协议与MySQL建立连 接。MySQL 客户端与服务端的通信方式是 “ 半双工 ”。对于每一个 MySQL 的连接，时刻都有一个 线程状态来标识这个连接正在做什么。
	通讯机制：
		全双工：能同时发送和接收数据，例如平时打电话。
			半双工：指的某一时刻，要么发送数据，要么接收数据，不能同时。例如早期对讲机
			单工：只能发送数据或只能接收数据。例如单行道
		
		线程状态：
		show proc..]]></description><category></category></item><item><title><![CDATA[pycharm使用技巧  之 新建文件自动添加表头信息]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/116240164</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/116240164</guid><author>whw1874</author><pubDate>Wed, 28 Apr 2021 18:30:43 +0800</pubDate><description><![CDATA[我们在开发项目是经常会在代码文件头部看到如下图的一些信息，每次创建文件都写一遍这些信息有点浪费精力，pycharm下可以设置自动长如文件头部信息


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : ${DATE} ${TIME}
# @Author  : harry

1.



2



点击ok即可，这样在创建文件时就会自动生成头部信息了






 ...]]></description><category></category></item><item><title><![CDATA[fabric2.x使用指南]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/115283834</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/115283834</guid><author>whw1874</author><pubDate>Sun, 28 Mar 2021 17:16:51 +0800</pubDate><description><![CDATA[fabric2.x使用

原文
]]></description><category></category></item><item><title><![CDATA[python的getpass模块]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/115255223</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/115255223</guid><author>whw1874</author><pubDate>Fri, 26 Mar 2021 21:02:40 +0800</pubDate><description><![CDATA[getpass模块提供了两个函数：

getpass.getpass(prompt='Password: ',stream=None)

提示用户输入一个密码且不会回显。 用户会看到字符串prompt作为提示，其默认值为'Password:'。 在 Unix 上，如有必要提示会使用替换错误句柄写入到文件类对象stream。stream默认指向控制终端 (/dev/tty)，如果不可用则指向sys.stderr(此参数在 Windows 上会被忽略)。

如果回显自由输入不可用则get...]]></description><category></category></item><item><title><![CDATA[centos7 yum源更换]]></title><link>https://blog.youkuaiyun.com/whw1874/article/details/115208781</link><guid>https://blog.youkuaiyun.com/whw1874/article/details/115208781</guid><author>whw1874</author><pubDate>Thu, 25 Mar 2021 14:55:50 +0800</pubDate><description><![CDATA[转摘：https://www.jianshu.com/p/45919a9dbd5b

在yum安装程序时有时会很慢或者直接超时中断，这种情况可以更改yum源为国内源。

修改CentOS默认yum源为mirrors.163.com

1、首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo

　　mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup

2、进入y..]]></description><category></category></item></channel></rss>