自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王小右的博客

个人网站:https://www.charmcode.cn/

  • 博客(70)
  • 收藏
  • 关注

原创 博客搬家了(放弃CSDN 转向个人博客 或者博客园)

博客搬家了个人博客地址:https://www.charmcode.cn/ 代码的魅力采用 Django2.2 + Python3.6 前后端不分离前端扒的 matery 主题 https://github.com/blinkfox/hexo-theme-matery主要分享语言Python3 , JavaScript 相关,部分Java知识。框架Flask, FastAPI, Vue等数据库MySql, Redis等...

2020-06-16 18:01:57 416 2

原创 Go 结构体数组多字段排序

golang 结构体数组多字段排序

2022-11-28 11:55:27 502 1

原创 Python3 和 PyQt5 打包成exe可执行文件

1 安装pyinstallerpip install pyinstaller2 打包pyinstaller.exe -F -w E:\Python_code\linux_mytool\weixin_account\main.py

2021-01-07 15:37:02 505

原创 【FastAPI 学习十二】定时任务篇 (移步博客园或个人网站 无广告,界面清爽整洁)

声明目前个人放弃CSDN平台,文章只发布于个人网站和博客园博客园地址【FastAPI 学习十二】定时任务篇

2020-12-25 22:51:53 874 1

原创 【FastAPI 十一项目生成器】 项目目录结构demo(自己改版)

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

2020-10-16 17:34:06 2205 1

原创 Vue pdf 多文件全部页面显示 使用笔记

pdf 多文件页面全部显示最早发布于博客园参考链接https://github.com/FranckFreiburger/vue-pdf#createloadingtasksrc单个文件安装npm install --save vue-pdf单个pdf文件显示全部,我是直接复制的参考链接<template> <div> <pdf v-for="i in numPages" :key="i" :src="src" :page="i"

2020-09-08 10:46:16 6128 5

原创 FastAPI WebSocket 基本使用二 分组发送Json数据

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

2020-08-24 13:21:01 1304

原创 webstorm 2018.2 EsLint报错 TypeError: this.CliEngine is not a constructor

webstorm 2018.2 EsLint报错 TypeError: this.CliEngine is not a constructor报错结果原因因为webstorm 2018.2版本对 高版本对EsLint不兼容解决办法降低EsLint 版本npm i [email protected] -D降低版本后,头部对警告就消失了...

2020-08-24 13:18:10 364

原创 Go string转Map 和 Map嵌套取值 和 interface转string

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

2020-08-21 11:57:52 3447

原创 Vant Toast loading加载使用

Vant Toast显示加载点击提交按钮时,触发请求,请求过程中显示加载弹窗,并且弹窗会遮挡整个页面的事件,不可点击。官网 https://youzan.github.io/vant/#/zh-CN/toast自己做个笔记,感觉加载的用法和element ui有点区别以下使用的CDN方式引入使用,和脚手架使用区别不大。效果图以下是CDN方式引入使用,axios也没有封装。Toast加载的时候,发送验证码等按钮点击事件会被阻止。methods: { // 提交表单 onSubmit(val

2020-08-20 14:29:17 21062 2

原创 FastAPI WebSocket 简单演示 一

FastAPI WebSocket 简单演示下午没事看了看WebSocket,感觉这个听好玩的,比写CRUD有意思。就复制了官网的demo演示看了看。官方文档效果

2020-08-20 00:18:45 2648

原创 Vant van-uploader 图片上传压缩 不缩减长宽

Vant 图片上传压缩还是接着上一篇文章,表单图片压缩,然后上传。图片压缩js压缩,就是用canvas对象重新在画一张图。关于js canvas压缩的代码有很多,我这里就不赘述了。van-uploader 上传压缩首先先看官网 https://youzan.github.io/vant/#/zh-CN/uploader部分代码<van-uploader accept="image/gif, image/jpeg ,image/png" :after-r

2020-08-19 22:14:31 4058 4

原创 Vant UI表单验证报错 TypeError: Cannot read property ‘reduce‘ of undefined

VantUI 表单验证

2020-08-19 21:45:48 3449 4

原创 Go 正则类似Python findall()方法

go正则之前用Python正则提取的数据,现在想改成go来写,python正则中的findall()用的很顺手, go里面也有类似的方法 FindAllStringSubmatch官网 https://golang.org/pkg/regexp/#Regexp.FindAllStringSubmatch方法对比下面用示例对比下,比如写爬虫最常见的就是提取标签中的数据。现在给出一个字符串,提取出其中h2,em标签内部的数据。测试测试<h2>h2内部数据h2111111</h2

2020-08-17 21:53:01 1156

原创 Go mod 包管理

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版本>=1.11,推荐go 1.13或以

2020-08-09 23:23:58 421

原创 webpack笔记三 Vue项目使用WebPack配置

Vue项目使用WebPack配置准确的说是vue-cli中使用webpack配置参考链接Vue-cli webpack 相关 https://cli.vuejs.org/zh/guide/webpack.htmlVue-cli4 生成项目的时候,会自动生成很多配置文件,自带babel语法转换,初始化webpack配置等操作。Vue ui 创建项目失败时参考链接 https://github.com/vuejs/vue-cli/issues/889vue --version // 查

2020-08-07 22:45:50 327

原创 webpack 笔记二 使用核心概念

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

2020-08-07 22:45:08 154

原创 webpack笔记一 使用webpack打包

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

2020-08-07 22:44:25 174

原创 Vue 最优组件强制刷新

Vue组件强制刷新这篇文章是接上篇文章,自己实现markdown编辑器时,碰到的问题https://www.charmcode.cn/article/2020-08-02_vue_editor我左边输入了内容,右边markdown组件实施更新强制刷新组件Vue官网 key的描述可以查看Vue官网,关于key的描述以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key attribute:Vue中的虚拟dom树也是根据key的变化,来判断是否刷新组件,

2020-08-02 22:18:46 298

原创 Vue lodash.debounce防抖函数

Vue 中使用防抖函数这篇文章也是衔接我之前文章,输入内容延迟显示。一般防抖函数,一般都是自己写,或者直接搜的类似这种function debounce(fn,wait){ var timer = null; return function(){ if(timer !== null){ clearTimeout(timer); } timer = setTimeout(fn,wait); }}Vue官

2020-08-02 22:17:24 1266

原创 【Go 基础学习 二】结构体 构造方法

Go 结构体由于go没有class类, 很多语法类似C,继承使用了C的结构体struct但是我看到go结构体里面,一般都是定义变量属性,没看到定义方法的,那么如何实现构造方法了?结构体package mainimport ( "fmt")// 声明一个结构体type Cat struct { name string color string sex bool couple Mouse // 这里赋值为 另一个结构体, 如果和结构体名一样 可以省略一个}/

2020-07-30 22:18:32 1039

原创 【Go基础学习 一】 指针和地址

Go语言基础学习 指针和地址有几个很不错的学习教程,感觉很不错GitHub开源go学习教程 https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.mdB站教程 https://space.bilibili.com/322210472/channel/detail?cid=108884最后就是go官网了https://golang.org/doc/go官网练习 https://t

2020-07-29 23:45:01 480

原创 【FastAPI后台API 十】使用Redis

在FastAPI中 使用Redis本来是想直接使用redsi的, 但是查阅资料都是使用aioredis, 所谓一步异步就得处处异步FastAPI官网关于异步的解释描述 https://fastapi.tiangolo.com/async/建议要使用FastAPI的人,都看看作者关于异步的描述思路把redis_cli对象挂载到FastAPI app 对象上面,然后在视图函数中使用默认的回调参数request对象获取参考链接https://github.com/tiangolo/fastapi

2020-07-29 16:42:45 8188 10

原创 【FastAPI后台API 九】图片文件上传

图片文件上传接收上传图片字节流数据,本地保存这个就没什么难度了,照着官网来就行了。有一点要主注意,文档看仔细。文档地址安装依赖pip install python-multipart代码import osimport shutilfrom pathlib import Pathfrom typing import Union, Anyfrom tempfile import NamedTemporaryFilefrom fastapi import APIRouter, Dep

2020-07-28 23:57:39 4671

原创 【FastAPI后台API 八】JWT token认证登陆

JWT token认证登陆前一篇博客讲述了获取和验证请求参数, 这一篇就实践下,演示一个最基础的JWT认证,我公司是用了两个token方式验证,一个请求token,一个刷新token,请求token过期时间短,专门用于请求数据,刷新token专门用于刷新过期请求token用的。jwt官网 https://jwt.io/如果还有不懂JWT的,就需要好好看看JWT的知识了,JWT认证目前是前后端分离中非常流行的一种认证方式: 由三段组成 第一段通常是加密算法,第二段是你存储的自定义信息(未加密任何人

2020-07-23 21:40:04 8452 5

原创 【FastAPI后台API 七】GET和POST请求参数接收以及验证

FastAPI http请求参数的接收我最开始接触FastAPI的时候,最搞不懂的就是POST方式是如何接收参数的。GET方式的参数GET方式的参数有两种,一种是路径参数,一种是查询参数。举个例子来说明两者的区别路径参数 官方文档 https://fastapi.tiangolo.com/tutorial/path-params/from fastapi import FastAPIapp = FastAPI()@app.get("/items/{item_id}")async

2020-07-22 23:55:04 47015 3

原创 【FastAPI后台API 六】异常处理

异常处理统一捕获处理异常,使得代码更加完善,健壮。框架内置了一些异常,当然也可以自己定义异常然后捕获处理。完全可以参考官网(超喜欢这种风格的文档):https://fastapi.tiangolo.com/tutorial/handling-errors/异常捕获在FastAPI中,最常见的就是请求参数验证异常处理,因为FastAPI全面使用了`pydantic`来做数据类型校验,所以最常见的异常就是`ValidationError` , 然后FastAPI继承了这个错误,专门捕获

2020-07-15 22:07:47 2761

原创 【FastAPI后台API 五】统一响应json数据格式

统一响应json数据格式现在了很多项目,都是前后端分离的项目,所以了前后端都会约定传输的数据格式,以及响应提醒。响应json格式现在应该都是使用的json交互了,应该没有使用xml的吧?一般了响应json格式是由以下三个字段组成。{ "code": 200, // 统一成功状态码 前后端约定 有的是0 有的是20000 "data": xxx, // 可以是任意类型数据 有接口文档对接 "message": "success" // 消息提示,是状态码的简要补充说明}前端一般

2020-07-15 22:04:43 5221 3

原创 【FastAPI后台API 四】 FastAPI 日志配置

FastAPI 中日志的配置本系列博客是配合Vue开发一套后台管理系统,对应的Vue教程见个人博客https://www.charmcode.cn/在Python中内置了logging模块, 但是配置有丢丢麻烦。于是有人开发了这样的一个日志扩展库loguru我很喜话它 Github地址 https://github.com/Delgan/loguruloguru 使用自己看官网http://loguru.readthedocs.io/或者GitHub README.md的演示,基本就够了

2020-07-12 17:05:57 7483

原创 【FastAPI后台API 三】 FastAPI SqlAlchemy MySql表迁移

FastAPI SqlAlchemy MySql表迁移FastAPI项目官网是直接使用的SqlAlchemy ORM,不像Flask,一般使用Flask-SqlAlchemy扩展,习惯了flask扩展的,没使用 SqlAlchemy,虽然大体上很像,但是有些地方还是不一样的。SqlAlchemy官方本身就是使用alembic实现表迁移的,所以现在直接用这个。官网 https://alembic.sqlalchemy.org/en/latest/alembic 初始化先安装alembicpip

2020-07-12 16:41:45 3125 2

原创 【FastAPI后台API 二】SqlAlchemy Model模型类

FastAPI SqlAlchemy ORM ModelFastAPI 使用 SqlAlchemy创建models文件目录| |____db // 数据库文件夹| | |______init__.py| | |____session.py // 创建 SessionLocal 对象| | |____base_class.py // model基础模块 如通用字段| | |____base.py

2020-07-11 19:22:03 1993

原创 【FastAPI后台API 一】配置文件(移步博客园或个人网站)

FastAPI 配置文件配置文件目录|____core // 项目存放一些重要的文件| |______init__.py| |____config // 配置文件夹| | |______init__.py // 根据虚拟环境导入不同配置| | |____development_config.py // 开发配置| | |____production_config.py //

2020-07-11 17:32:50 3153 1

原创 个人博客 Django 评论模块开发总结【四】JavaScript逻辑,请求渲染校验数据

JavaScript逻辑,请求渲染校验数据个人网站开通评论了 https://www.charmcode.cn/article/2020-07-09_Comment欢迎评论交流思路分析首先得理清楚,需要做那些功能确定是否登录(通过cookie 存储的用户信息判断)用户输入内容校验,以及提示用户输入字数,涉及到防抖函数请求评论数据,然后渲染数据列表(目前不考虑做分页)添加评论数据,添加前先过滤数据,提交按钮防抖,提交后清空输入框并且给出接口回调提示,评论成功或者失败。...

2020-07-11 16:23:49 211

原创 个人博客 Django 评论模块开发总结【三】评论样式实现

评论样式实现本着练习技术的能力,索性就一套全部写完,css咱也会。多写多练就不怕那玩意。虽然个人博客是扒的这个 博客主题 https://github.com/blinkfox/hexo-theme-matery但是当时图省事,很多模块就直接省略了。这个博客详情页里面也有博客样式。地址 http://blinkfox.com/2018/11/24/ruan-jian-she-ji/ruan-jian-cheng-xu-she-ji-yuan-ze/#toc-heading-24同样也可以右键,把

2020-07-10 23:05:28 633

原创 个人博客 Django 评论模块开发总结【二】数据表以及接口设计

数据表以及接口设计写之前先理清楚思路,各个表之间的关系是怎么样子的。一个文章可以多个评论,一个用户也可以在一篇文章下评论多次所以了 主要设计三张表文章表用户表评论表 (包含用户id 文章id)Django orm model这里了首先使用了django model 外键关联1 文章表modelclass Article(models.Model): """ 文章 """ id = models.AutoField(primary_key=Tru

2020-07-10 22:46:48 504

原创 个人博客 Django 评论模块开发总结【一】Github第三方登陆

个人博客 评论模块开发总结个人网站开通评论了 https://www.charmcode.cn/article/2020-07-09_Comment欢迎评论个人博客使用Python Django框架开发, 以下博客总结都是以Django为演示,前端使用原生Js 加简单封装的fetch请求库 替换JQuery的ajax,布局用的flex。前言我看网上现在很多都是使用的 畅言 或者 Disqus 等等的插件,当然集成插件确实也方便轻松。但是,本着技术人员的热情,我还是想自己开发一下。其他自己开发

2020-07-09 23:38:52 379

原创 Vue封装Toast消息弹窗提示

Vue 封装Toast消息提示学习Vue的道路上,封装一些自定义的组件不可避免,今天就来封装一个Toast消息提示。后面还有dialog对话框,原理差不多。首先先看看效果图现在才知道用qq录制gif图是真方便。(非广告,后面会多用gif图)1 正常组件调用2 全局注册对象调用(不知道是不是叫这个名字)一 首先,我们先封装一个正常组件看看效果。1 首先创建一个最普通的组件/toast/Toast.vue 看看效果.<template> <div cla

2020-07-02 11:48:26 2123 1

原创 Nginx部署多个Vue项目

Nginx线上部署多个Vue项目(路径区分)nginx 多静态文件部署。我个人博客项目占用了nginx根路径,而我只有一个域名,也不准备用二级域名了, 所以就直接用路径区分开。一个域名,只部署一个静态文件服务,那很简单,只用把打包后文件放上去就行。多个Vue项目主要就是路径问题,静态js文件以及自定义的路由。原文请访问 我个人博客地址博客地址: https://www.charmcode.cn/article/2020-06-30_nginx_vue环境vue 2.6.11vue-r

2020-06-30 18:33:56 1606

原创 FastAPI 项目结构组织,工厂模式创建

FastAPI 项目结构组织,工厂模式创建前言学习Vue的时候,需要接口,而我恰巧也学习了下FastAPI,正好个人项目,试一下这个FastAPI框架。然而 现在关于FastAPI,搜索资料基本都是官网翻译一下,要么就是官方推荐的全栈项目生成https://github.com/tiangolo/full-stack-fastapi-postgresql, 对我目前的需求而言,太大了,而且全程用docker,对我这个初学FastAPI的新手来说很不友好。于是我自己花了点时间, 详细看了一遍文档。

2020-06-24 17:28:39 2908 1

原创 JavaScript ajax 代替请求库 fetch简单封装

js 请求库简单封装前言以前一直用JQuery的 ajax 请求,感觉哪玩意真不好用,后面发现有fetch这个http请求库,于是自己尝试封装看看。参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API/Using_Fetch封装代码可以先建一个 requests.js (Tip: Python requests )// 请求前缀urlconst baseUrl = "https://www.charmcode.cn

2020-06-22 14:30:39 491

空空如也

空空如也

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

TA关注的人

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