<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[宫本武藏獒]]></title><description><![CDATA[虽然没有"明天".可明天依旧会到来]]></description><link>https://blog.youkuaiyun.com/qq_40600409</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_40600409]]></copyright><item><title><![CDATA[python多版本管理--pyenv]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/149333500</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/149333500</guid><author>qq_40600409</author><pubDate>Mon, 14 Jul 2025 16:27:05 +0800</pubDate><description><![CDATA[【代码】python多版本管理--pyenv。]]></description><category></category></item><item><title><![CDATA[初学 pytest 记录]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/148455326</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/148455326</guid><author>qq_40600409</author><pubDate>Mon, 09 Jun 2025 10:21:38 +0800</pubDate><description><![CDATA[可以根据不同类型的用例分成不同的种类.在用例多的情况下可以根据需求执行部分种类测试日志.配置创建配置文件,我这边创建在项目的根目录下 pytest.ini[ pytest ] markers = api : 接口测试ui : UI测试ut : 重试login : 登录测试ddt: 数据驱动测试在 markers 中key:value 形式的就是自定义的标记,名称:注释打标记@pytest.mark.标记名称来使用.print()使用命令行pytest -m 标记名称。]]></description><category></category></item><item><title><![CDATA[linux 串口改为固定]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/130748724</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/130748724</guid><author>qq_40600409</author><pubDate>Thu, 18 May 2023 15:48:21 +0800</pubDate><description><![CDATA[其中 ATTRS{idVendor} / ATTRS{idProduct} / ATTRS{serial}  通过。修改完成后执行sudo udevadm control --reload 重启生效  重新插拔串口线。绑定好后,例如之前在调用串口时使用的是’/dev/ttyUSB0’,现在可直接使用/dev/2-1。在/etc/udev/rules.d 目录下新建定义规则的文件。输入指令  ls -l /dev | grep ttyUSB。文件创建成功后在文件内按格式写入。]]></description><category></category></item><item><title><![CDATA[关于 VScode 中使用 python 相对路径找不到的问题(解决)]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/127521573</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/127521573</guid><author>qq_40600409</author><pubDate>Tue, 25 Oct 2022 20:53:13 +0800</pubDate><description><![CDATA[结果在 vscode 中使用 python 的路径问题!!!]]></description><category></category></item><item><title><![CDATA[Django+VUE使用websocket]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/126300829</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/126300829</guid><author>qq_40600409</author><pubDate>Fri, 12 Aug 2022 11:30:35 +0800</pubDate><description><![CDATA[django+vue  使用 websocket 后端向前端推送消息]]></description><category></category></item><item><title><![CDATA[python私有化属性]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/123234747</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/123234747</guid><author>qq_40600409</author><pubDate>Wed, 02 Mar 2022 17:01:34 +0800</pubDate><description><![CDATA[私有化
python的私有化是伪私有化  是通过_类名__变量来重命名的所以外界访问不了
_单下划线表示私有属性和方法,可以在类对象子类访问
__双下划线也是私有属性,只可以在当前类中使用,无法被继承.还有一个作用就是避免变量名冲突
如果想部分私有化属性可以被外界使用 可以使用
__all __ =["私有变量名"]

个人总结私有属性的使用场景:如果遇到某些参数不可以在类外部随意更改,比如下面的age 不能在外部随意赋值,则设置成私有属性,通过类方法来调用更改,在更改的同时校验参数的合法性
class A]]></description><category></category></item><item><title><![CDATA[AES加密IV报错‘iv’ is an invalid keyword argument for this function]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/116799838</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/116799838</guid><author>qq_40600409</author><pubDate>Fri, 14 May 2021 17:50:19 +0800</pubDate><description><![CDATA[‘iv’ is an invalid keyword argument for this function
本来在本地运行没有问题,但是部署上线之后,就一直提示这个错误.
IV要注意大写
记录小坑

]]></description><category></category></item><item><title><![CDATA[服务器重启自动执行]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/116521367</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/116521367</guid><author>qq_40600409</author><pubDate>Sat, 08 May 2021 11:28:08 +0800</pubDate><description><![CDATA[服务器重启后自动执行命令

找到.local文件

/etc/rc.d/rc.local 或者 /etc/rc.local


使用vim打开

vim rc.local


写入你要执行的命令


vim  的操作自行百度把.

]]></description><category></category></item><item><title><![CDATA[python恢复中文]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/116204720</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/116204720</guid><author>qq_40600409</author><pubDate>Tue, 27 Apr 2021 16:45:36 +0800</pubDate><description><![CDATA[记录一下
a='\xe4\xb8\xaa\xe4\xba\xba\xe6\x9c\xaa\xe9\xa2\x86\xe5\x8f\x96\xe4\xbb\xbb\xe5\x8a\xa1\xef\xbc\x8c\xe6\x97\xa0\xe6\xb3\x95\xe4\xb8\x8b\xe5\x8f\x91'
print(a.encode('raw_unicode_escape').decode('utf-8'))


]]></description><category></category></item><item><title><![CDATA[公钥与私钥的使用方式]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/115002947</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/115002947</guid><author>qq_40600409</author><pubDate>Fri, 19 Mar 2021 11:42:58 +0800</pubDate><description><![CDATA[不同场景中公钥与私钥的使用方式


公钥/私钥的概念:
私钥,即私人的要是,是唯一的,所以可以用来证明来源是特定的人.
公钥,即公用的钥匙,我可以将它给很多人.既然这么多人知道,所以公钥不能证明来源一定是特定的人.


加密 / 签名:
加密: 用户防止信息外泄(泄漏给不相关的人)
签名: 用于确认身份(可以类比下生活中的签名)


到底谁创建 / 拥有 / 使用   公钥与私钥


当情景是签名 / 验签时:


A想使用我的服务,为了安全,我不希望A以为的人可以使用这些服务.
此时我会要求A创建一对公私]]></description><category></category></item><item><title><![CDATA[身份证格式校验]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/114135706</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/114135706</guid><author>qq_40600409</author><pubDate>Fri, 26 Feb 2021 15:40:40 +0800</pubDate><description><![CDATA[身份证格式校验
身份证号码的构成

import re
import time
from datetime import datetime, date


class IdCard(object):
    CODE_SUCCESS = 200  # 成功
    CODE_LENGTH_ERROR = 701  # 卡号位数错误
    CODE_FORMAT_ERROR = 702  # 卡号格式错误
    CODE_AREA_ERROR = 703  # 区位码错误
    CODE_BIRTH_D]]></description><category></category></item><item><title><![CDATA[django+celery异步消息队列]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/113250092</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/113250092</guid><author>qq_40600409</author><pubDate>Wed, 27 Jan 2021 15:32:01 +0800</pubDate><description><![CDATA[多任务队列demo



安装对应的库


pip3 install celery==4.4.2
pip3 install eventlet==0.25.2
pip3 install Django==2.0.4



配置settings文件
这里broker配置redis，同时backend也就是任务结果也存到redis中，格式为json，方便读写。
# 定义上传文件夹的路径
UPLOAD_ROOT = os.path.join(BASE_DIR, 'static/upload')

CELERY_BRO]]></description><category></category></item><item><title><![CDATA[mysql ifnull函数返回值]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/113128348</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/113128348</guid><author>qq_40600409</author><pubDate>Mon, 25 Jan 2021 18:06:51 +0800</pubDate><description><![CDATA[MySQL IFNULL返回值问题
最近在项目中有遇到个问题,数据库的时间存储使用的是datetime格式的,但查询时使用ifnull()进行判断之后,返回的确实字符串.
先来看看ifnull的介绍
IFNULL() 函数用于判断第一个表达式是否为 NULL，如果为 NULL 则返回第二个参数的值，如果不为 NULL 则返回第一个参数的值。
IFNULL() 函数语法格式为：
IFNULL(expression, alt_value)





参数
描述




expression
必须，要测试的值

]]></description><category></category></item><item><title><![CDATA[python生成二维码]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/112536947</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/112536947</guid><author>qq_40600409</author><pubDate>Tue, 12 Jan 2021 17:01:02 +0800</pubDate><description><![CDATA[python生成二维码
需要用到的包
pip install qrcode 

代码:
import qrcode

from PIL import Image # 如果需要在二维码中添加图片logo需要

# 模块导入

data = "www.baidu.com"
img_name = '二维码.png'  # 图片名称

# 实例化QRcode生成qr对象
qr = qrcode.QRCode(
    # 表示二维码的大小 范围1-40 如果想让程序自动生成，将值设置为 None 并使用 fit=T]]></description><category></category></item><item><title><![CDATA[django启动报错:TypeError: expected str, bytes or os.PathLike object, not NoneType]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/112372741</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/112372741</guid><author>qq_40600409</author><pubDate>Fri, 08 Jan 2021 17:14:14 +0800</pubDate><description><![CDATA[django启动报错:TypeError: expected str, bytes or os.PathLike object, not NoneType
分配下来的项目需要更改,但是项目就是跑不起来,一直报一个错误TypeError: expected str, bytes or os.PathLike object, not NoneType
如下:

从报错信息看,也定位不到具体是那里的问题,在网上查阅了很多的文章,很多说配置文件settings.py有问题,也都尝试.结果还是没能解决.
虚拟环境,p]]></description><category></category></item><item><title><![CDATA[bootstrap-table新增行,数据清零问题]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/110389353</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/110389353</guid><author>qq_40600409</author><pubDate>Mon, 30 Nov 2020 15:25:19 +0800</pubDate><description><![CDATA[bootstrap-table新增行数据刷新
最近做项目有需要需要在bootstrap-table中新增行,这个官方有提供方法
insertRow
插入新行: $table.bootstrapTable('insertRow', {index: 1, row: row}).

但是出现一个问题,没事新增行之后,原本输入框的内容会被刷新(表格中嵌套了input框)
寻找也没有找到好的解决办法.最后只能用笨一点的,先获取表格的数据,存储起来,等新增之后在重新给表格赋值.
首先是获取行内数据.
var value]]></description><category></category></item><item><title><![CDATA[echarts]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/109648648</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/109648648</guid><author>qq_40600409</author><pubDate>Thu, 12 Nov 2020 17:17:32 +0800</pubDate><description><![CDATA[ECharts 表图属性参数对照
theme = {
    // 全图默认背景
    // backgroundColor: 'rgba(0,0,0,0)',

    // 默认色板
    color: ['#ff7f50','#87cefa','#da70d6','#32cd32','#6495ed',
            '#ff69b4','#ba55d3','#cd5c5c','#ffa500','#40e0d0',
            '#1e90ff','#ff6347','#7]]></description><category></category></item><item><title><![CDATA[vue请求头携带token]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/109332440</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/109332440</guid><author>qq_40600409</author><pubDate>Wed, 28 Oct 2020 14:40:52 +0800</pubDate><description><![CDATA[vue请求拦截,在请求头中携带token
正常登陆的用户就会有后端响应的token值,在用户每次发起请求都要在请求头中携带这个token值.
main.js
/*引入axios*/
import Axios from "axios";

Vue.prototype.axios = Axios;

// 添加请求拦截器，在请求头中加token
Axios.interceptors.request.use(
  config =&gt; {
    if (localStorage.getItem("token]]></description><category></category></item><item><title><![CDATA[vue路由权限验证之路由守卫]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/109332424</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/109332424</guid><author>qq_40600409</author><pubDate>Wed, 28 Oct 2020 14:40:18 +0800</pubDate><description><![CDATA[vue登陆验证之导航守卫
在网站中我们需要判断用户是否登陆来决定用户是否有权限访问网站的页面.
一般会在登陆成功后,将后台Response的token存储在localhost或者vuex中.
当路由发生变化时去校验这个token是否存在.决定是否能跳转
在响应成功后存储token值
localStorage.setItem("token", res.data.data.token);

main.js添加全局导航守卫
const router = new VueRouter({...});
router.b]]></description><category></category></item><item><title><![CDATA[vueCLI3.0部署到阿里云服务器]]></title><link>https://blog.youkuaiyun.com/qq_40600409/article/details/109073230</link><guid>https://blog.youkuaiyun.com/qq_40600409/article/details/109073230</guid><author>qq_40600409</author><pubDate>Wed, 14 Oct 2020 14:41:32 +0800</pubDate><description><![CDATA[vueCLI3.0部署服务器
因工作需要.vue项目部署到服务器上.使用finalShell链接服务器与xshell基本相同.Xftp6来传输文件
vue项目打包
npm run build

此时目录会多出一个dist文件夹.这就是我们打包好的项目.
可以进入dist文件夹,打开里边的index.html文件.但是发现是空白的.
这里提供一个方法可以查看,但只针对CLI3的架子.
在项目所在路径cmd
第一步执行:npm install -g serve
第二步执行:serve -s dist

随后复制]]></description><category></category></item></channel></rss>