<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[王小右的博客]]></title><description><![CDATA[个人网站:https://www.charmcode.cn/]]></description><link>https://blog.youkuaiyun.com/wgPython</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wgPython]]></copyright><item><title><![CDATA[Go 结构体数组多字段排序]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/128077090</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/128077090</guid><author>wgPython</author><pubDate>Mon, 28 Nov 2022 11:55:27 +0800</pubDate><description><![CDATA[golang 结构体数组多字段排序]]></description><category></category></item><item><title><![CDATA[Python3 和 PyQt5 打包成exe可执行文件]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/85338839</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/85338839</guid><author>wgPython</author><pubDate>Thu, 07 Jan 2021 15:37:02 +0800</pubDate><description><![CDATA[1 安装pyinstaller
pip install pyinstaller

2 打包
pyinstaller.exe -F -w E:\Python_code\linux_mytool\weixin_account\main.py


]]></description><category></category></item><item><title><![CDATA[【FastAPI 学习十二】定时任务篇 (移步博客园或个人网站 无广告，界面清爽整洁)]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/111713013</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/111713013</guid><author>wgPython</author><pubDate>Fri, 25 Dec 2020 22:51:53 +0800</pubDate><description><![CDATA[声明
目前个人放弃优快云平台，文章只发布于个人网站和博客园
博客园地址
【FastAPI 学习十二】定时任务篇

]]></description><category></category></item><item><title><![CDATA[【FastAPI 十一项目生成器】 项目目录结构demo(自己改版)]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/109120806</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/109120806</guid><author>wgPython</author><pubDate>Fri, 16 Oct 2020 17:34:06 +0800</pubDate><description><![CDATA[FastAPI和MySql项目生成器，使用sqlalchemy ORM。

之前呢使用FastAPI是为了配合学习Vue，尝试性写的API服务接口，后面放到Github上面，感觉代码写的很烂，没想到我关于FastAPI的项目有40多个老哥点star，还有几位老哥issue给出建议，或者咨询我FastAPI的问题，都表示这方面的资料很少，所以我感觉自己有必要写这么一个项目，帮助大家更好的学习FastAPI。

以下是我在GitHub托管的 fastapi-mysql-generator FastAPI项目生成]]></description><category></category></item><item><title><![CDATA[Vue pdf 多文件全部页面显示 使用笔记]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108463993</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108463993</guid><author>wgPython</author><pubDate>Tue, 08 Sep 2020 10:46:16 +0800</pubDate><description><![CDATA[pdf 多文件页面全部显示
最早发布于博客园
参考链接
https://github.com/FranckFreiburger/vue-pdf#createloadingtasksrc
单个文件
安装
npm install --save vue-pdf

单个pdf文件显示全部，我是直接复制的参考链接
&lt;template&gt;
	&lt;div&gt;
		&lt;pdf
			v-for="i in numPages"
			:key="i"
			:src="src"
			:page="i"]]></description><category></category></item><item><title><![CDATA[FastAPI WebSocket 基本使用二 分组发送Json数据]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108197407</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108197407</guid><author>wgPython</author><pubDate>Mon, 24 Aug 2020 13:21:01 +0800</pubDate><description><![CDATA[FastAPI WebSocket 分组发送Json数据


用户1和 用户2 可以互相发送私信消息


用户1 2 3之间相当于一个群，可以发送广播消息


效果

代码
FastAPI 服务端代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/8/19 13:38
# @Author  : CoderCharm
# @File    : main.py
# @Software: PyCharm
# @Github  : g]]></description><category></category></item><item><title><![CDATA[webstorm 2018.2 EsLint报错 TypeError: this.CliEngine is not a constructor]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108196750</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108196750</guid><author>wgPython</author><pubDate>Mon, 24 Aug 2020 13:18:10 +0800</pubDate><description><![CDATA[webstorm 2018.2 EsLint报错 TypeError: this.CliEngine is not a constructor
报错结果

原因
因为webstorm 2018.2版本对 高版本对EsLint不兼容
解决办法
降低EsLint 版本
npm i eslint@5.6.0 -D

降低版本后，头部对警告就消失了


...]]></description><category></category></item><item><title><![CDATA[Go string转Map 和 Map嵌套取值 和  interface转string]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108144094</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108144094</guid><author>wgPython</author><pubDate>Fri, 21 Aug 2020 11:57:52 +0800</pubDate><description><![CDATA[Go字符串转Map 和 Map的嵌套取值

想用Go写爬虫联系一下语法的，结果数据类型转换还不熟悉。

map嵌套取值就会报错type interface {} does not support indexing
字符串转Map
// 示例字符串
resString := `
{
	"args": {}, 
	"headers": {
		"Accept-Encoding": "gzip", 
		"Host": "httpbin.org", 
		"User-Agent": "GRequests/0.10]]></description><category></category></item><item><title><![CDATA[Vant Toast loading加载使用]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108122835</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108122835</guid><author>wgPython</author><pubDate>Thu, 20 Aug 2020 14:29:17 +0800</pubDate><description><![CDATA[Vant Toast显示加载
点击提交按钮时，触发请求，请求过程中显示加载弹窗，并且弹窗会遮挡整个页面的事件，不可点击。
官网 https://youzan.github.io/vant/#/zh-CN/toast
自己做个笔记，感觉加载的用法和element ui有点区别
以下使用的CDN方式引入使用，和脚手架使用区别不大。
效果图

以下是CDN方式引入使用，axios也没有封装。Toast加载的时候，发送验证码等按钮点击事件会被阻止。
methods: {
 // 提交表单
 onSubmit(val]]></description><category></category></item><item><title><![CDATA[FastAPI WebSocket 简单演示 一]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108113872</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108113872</guid><author>wgPython</author><pubDate>Thu, 20 Aug 2020 00:18:45 +0800</pubDate><description><![CDATA[FastAPI WebSocket 简单演示

下午没事看了看WebSocket，感觉这个听好玩的，比写CRUD有意思。就复制了官网的demo演示看了看。

官方文档
效果


]]></description><category></category></item><item><title><![CDATA[Vant van-uploader 图片上传压缩 不缩减长宽]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108112011</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108112011</guid><author>wgPython</author><pubDate>Wed, 19 Aug 2020 22:14:31 +0800</pubDate><description><![CDATA[Vant 图片上传压缩

还是接着上一篇文章，表单图片压缩，然后上传。

图片压缩
js压缩，就是用canvas对象重新在画一张图。关于js canvas压缩的代码有很多，我这里就不赘述了。
van-uploader 上传压缩
首先先看官网 https://youzan.github.io/vant/#/zh-CN/uploader
部分代码
&lt;van-uploader
        accept="image/gif, image/jpeg ,image/png"
        :after-r]]></description><category></category></item><item><title><![CDATA[Vant UI表单验证报错 TypeError: Cannot read property ‘reduce‘ of undefined]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108106910</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108106910</guid><author>wgPython</author><pubDate>Wed, 19 Aug 2020 21:45:48 +0800</pubDate><description><![CDATA[VantUI 表单验证

]]></description><category></category></item><item><title><![CDATA[Go 正则类似Python findall()方法]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/108065095</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/108065095</guid><author>wgPython</author><pubDate>Mon, 17 Aug 2020 21:53:01 +0800</pubDate><description><![CDATA[go正则

之前用Python正则提取的数据，现在想改成go来写，python正则中的findall()用的很顺手， go里面也有类似的方法 FindAllStringSubmatch

官网 https://golang.org/pkg/regexp/#Regexp.FindAllStringSubmatch
方法对比
下面用示例对比下，比如写爬虫最常见的就是提取标签中的数据。
现在给出一个字符串，提取出其中h2，em标签内部的数据。
测试测试&lt;h2&gt;h2内部数据h2111111&lt;/h2]]></description><category></category></item><item><title><![CDATA[Go mod 包管理]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/107902213</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/107902213</guid><author>wgPython</author><pubDate>Sun, 09 Aug 2020 23:23:58 +0800</pubDate><description><![CDATA[go mod包管理

基本每个语言都有自己的包管理工具，node的npm,yarn；Python pipenv,venv；Java的maven等等，go 当然也有自己的包管理工具 mod(Modules简写)

参考链接

官方github https://github.com/golang/go/wiki/Modules#how-to-use-modules
官方文档 https://blog.golang.org/using-go-modules

要求go版本&gt;=1.11，推荐go 1.13或以]]></description><category></category></item><item><title><![CDATA[webpack笔记三 Vue项目使用WebPack配置]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/107872010</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/107872010</guid><author>wgPython</author><pubDate>Fri, 07 Aug 2020 22:45:50 +0800</pubDate><description><![CDATA[Vue项目使用WebPack配置

准确的说是vue-cli中使用webpack配置

参考链接

Vue-cli webpack 相关 https://cli.vuejs.org/zh/guide/webpack.html

Vue-cli4 生成项目的时候，会自动生成很多配置文件，自带babel语法转换，初始化webpack配置等操作。

Vue ui 创建项目失败时参考链接 https://github.com/vuejs/vue-cli/issues/889


vue --version // 查]]></description><category></category></item><item><title><![CDATA[webpack 笔记二 使用核心概念]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/107871998</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/107871998</guid><author>wgPython</author><pubDate>Fri, 07 Aug 2020 22:45:08 +0800</pubDate><description><![CDATA[WebPack使用核心概念
参考文档
webpack v4.44.1中文文档 https://www.webpackjs.com/concepts/
webpack v5.0.0-beta.24 https://webpack.js.org/concepts/
四个核心组成

入口 Entry
输出 Output
加载解释 Loaders
插件 Plugins

加上
- 模式 Mode
- 浏览器兼容性Browser Compatibility

示例
目录结构
src
  |- index.js    ]]></description><category></category></item><item><title><![CDATA[webpack笔记一 使用webpack打包]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/107871973</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/107871973</guid><author>wgPython</author><pubDate>Fri, 07 Aug 2020 22:44:25 +0800</pubDate><description><![CDATA[webpack入门一 使用webpack打包

用于编译javascript模块的工具，命令知道会用就行。

官方文档 https://webpack.js.org/guides/getting-started/
入门体验
// 创建一个demo文件夹
mkdir webpack-demo
// 进入文件夹
cd webpack-demo
// 初始化
npm init -y
// 安装webpack依赖
npm install webpack webpack-cli --save-dev

在webpac]]></description><category></category></item><item><title><![CDATA[Vue 最优组件强制刷新]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/107752689</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/107752689</guid><author>wgPython</author><pubDate>Sun, 02 Aug 2020 22:18:46 +0800</pubDate><description><![CDATA[Vue组件强制刷新

这篇文章是接上篇文章，自己实现markdown编辑器时，碰到的问题
https://www.charmcode.cn/article/2020-08-02_vue_editor

我左边输入了内容，右边markdown组件实施更新
强制刷新组件
Vue官网 key的描述
可以查看Vue官网，关于key的描述

以便它能跟踪每个节点的身份，从而重用和重新排序现有元素，你需要为每项提供一个唯一 key attribute：

Vue中的虚拟dom树也是根据key的变化，来判断是否刷新组件，]]></description><category></category></item><item><title><![CDATA[Vue lodash.debounce防抖函数]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/107752666</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/107752666</guid><author>wgPython</author><pubDate>Sun, 02 Aug 2020 22:17:24 +0800</pubDate><description><![CDATA[Vue 中使用防抖函数
这篇文章也是衔接我之前文章，输入内容延迟显示。
一般防抖函数，一般都是自己写，或者直接搜的类似这种
function debounce(fn,wait){
    var timer = null;
    return function(){
        if(timer !== null){
            clearTimeout(timer);
        }
        timer = setTimeout(fn,wait);
    }
}

Vue官]]></description><category></category></item><item><title><![CDATA[【Go 基础学习 二】结构体 构造方法]]></title><link>https://blog.youkuaiyun.com/wgPython/article/details/107702144</link><guid>https://blog.youkuaiyun.com/wgPython/article/details/107702144</guid><author>wgPython</author><pubDate>Thu, 30 Jul 2020 22:18:32 +0800</pubDate><description><![CDATA[Go 结构体

由于go没有class类， 很多语法类似C，继承使用了C的结构体struct

但是我看到go结构体里面，一般都是定义变量属性，没看到定义方法的，
那么如何实现构造方法了？
结构体
package main

import (
	"fmt"
)

// 声明一个结构体
type Cat struct {
	name   string
	color  string
	sex    bool
	couple Mouse // 这里赋值为 另一个结构体, 如果和结构体名一样 可以省略一个
}

/]]></description><category></category></item></channel></rss>