自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jenkins 插件版本冲突

false重启jenkinscd /root/.jenkins/添加以下内容:重启tomcat。

2024-07-19 15:37:14 721

原创 DataEase大屏iframe嵌入自建网站(React)

如果是docker 安装, web默认端口是80,可以在挂载目录的.env 文件中修改 DE_PORT=8081。完成以上步骤,就可以在自建网站中展示dataease 大屏了,非常好用!

2024-03-21 11:57:02 566

原创 npm install 报错 npm ERR! code CERT_HAS_EXPIRED

【代码】npm install 报错 npm ERR!

2024-01-24 11:07:15 1060

原创 ant design pro 修改顶部默认的暗黑色主题

ant design pro 修改顶部默认的暗黑色主题

2023-10-20 16:23:45 348

原创 python安装虚拟环境报错 Error while finding module specification for ‘virtualenvwrapper.hook_loader‘

执行source ~/.bashrc 时报错:source ~/.bashrc/usr/local/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')virtualenvwrapper.sh: There was a problem running the

2022-02-21 11:09:23 1409

原创 docker安装 sentry

docker pull redisdocker pull postgresdocker pull sentrydocker run -d --name sentry-redis redisdocker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgresdocker run --rm sentry config generate-secret-keydock

2022-02-18 14:23:11 1367 1

原创 python 读取.env配置文件

python 读取.env配置文件目录结构project/├─config│ └─__init__.py| └─base.py| └─conf.py├─.env├─.env.exampleconf.py#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zhang@wiwide.com# @Time

2021-07-22 16:36:30 6331

原创 python AES+ECB+base64加解密

python AES+CBC+base64加解密from Crypto.Cipher import AESimport base64class PrpCrypt: def __init__(self, key='PoizonGroupCrypt'): self.key = self.pad_key(key) self.mode = AES.MODE_CBC def pad_key(self, key): key = bytes(ke

2021-07-19 17:12:44 432

原创 python 格式化打印

python 格式化打印# coding=utf-8def myprint(d): print(myprint2(d, 0))def myprint2(d, deep=0): result = '' newline = '\n' suojin = ' ' * deep if isinstance(d, dict): start, end = '{', '}' result = suojin + start + newli

2021-07-19 15:38:17 718

原创 django orm动态建表

django orm动态建表dynamic_models.py#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zhang@wiwide.com# @Time : 2021/7/16 17:31# @Version : 1.0# @File : dynamic_models.py#

2021-07-19 10:42:48 1802 2

原创 python 函数执行时间装饰器

python 函数执行时间装饰器#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zhang@wiwide.com# @Time : 2021/7/15 16:20# @Version : 1.0# @File : __init__.py.py# @Software : PyC

2021-07-16 14:07:26 428

原创 python 搭建FTP服务上传下载文件

python 搭建FTP服务上传下载文件server.py#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zhang@wiwide.com# @Time : 2021/7/15 16:20# @Version : 1.0# @File : server.py# @Software

2021-07-16 11:24:51 294

原创 python元类实现简单django orm

python元类django orm实现简单一、type元类的类则是由type元类自身创建的。object类是由元类type创建的,但是type类又继承了object类。二、元类实现ormclass ModelMetaclass(type): def __new__(cls, name, bases, attrs): mappings = dict() # 判断是否需要保存 for k, v in attrs.items():

2021-06-22 18:27:22 105

原创 kafka.errors.NoBrokersAvailable: NoBrokersAvailable

kafka.errors.NoBrokersAvailable: NoBrokersAvailable创建kafka生产者from kafka import KafkaProducerproducer = KafkaProducer(bootstrap_servers=['192.168.4.34:9092'], compression_type='gzip')报错信息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img

2021-06-18 16:57:13 1131

原创 windows 安装python虚拟环境

windows 安装python虚拟环境一、同时安装python2 和python3第一步:下载python2和python3对应的安装包,下载地址python官网:https://www.python.org。第二步:安装路径直接安装到C盘下,而不是安装到Program Files下,因为这样的话路径中有空格,可能会产生问题,且不易查找。第三步:安装过程中,注意勾选为所有用户安装以及加入环境变量。第四步:安装成功后,在终端输入python -V检查版本,此时应该为后一个安装的python版本,比

2021-06-18 16:41:56 434

原创 Django 数据库迁移报 table already exists

Django 数据库迁移报 table already exists数据库迁移时执行:python manage.py migrate --fake

2021-05-28 11:35:57 829

原创 s.Engine.Assets undefined (type *blocks.Blocks has no field or method Assets)

iris 报undefined (type *blocks.Blocks has no field or method Assets)错误信息..\pkg\mod\github.com\kataras\iris@v0.0.2\view\blocks.go:76:37: undefined: blocks.AssetFunc..\pkg\mod\github.com\kataras\iris@v0.0.2\view\blocks.go:76:66: undefined: blocks.AssetNa

2021-04-20 18:12:33 1273

原创 ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory

Django项目启动时ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory问题描述虚拟环境中已经安装了mysqlclient(官方推荐,替换pymysql)python manage.py runserver 时报错[2021-04-16 15:13:00 +0800] [4321] [INFO] Worker exiting (pid: 4321)[20

2021-04-19 11:11:57 666 1

原创 pymysql连接池操作MySQL

pymysql连接池操作MySQL安装pip install PyMySQLpip install DBUtils上代码#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zhang@wiwide.com# @Time : 2021/4/7 18:12# @Version : 1.0# @Fil

2021-04-19 10:52:34 288

原创 python join 和遍历后使用+的区别

python join 和遍历后使用+的区别字符串是不可变类型,如果要进行字符串的拼接,只能申请新的内存保存新拼接的字符串。这样每进行一次拼接就需要申请一次内存并存储结果,这会使得程序效率低。join只会进行一次内存申请,因此运行效率相对于+会快很多。...

2021-04-15 15:27:00 124

原创 MySQL 索引失效的场景

MySQL 查询索引失效的情况使用 or 导致索引失效select * from user where user_id = 1 or age = 20;user_id和age是索引,以上语句索引失效。where语句中索引列使用了负向查询,可能会导致索引失效负向查询包括:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等索引字段可以为null,使用is null或is not null时,可能会导致索引失效数据类型隐士转换(如果原数据类型是字

2021-04-15 15:20:12 281

原创 Django ORM数据库查询N + 1问题性能优化

Django ORM数据库查询N + 1问题性能优化模型类# device 表,表示当前网络中纳管的物理设备。class Device(models.Model): name = models.CharField(max_length=100, unique=True) # 添加设备时的设备名 hostname = models.CharField(max_length=100, null=True) # 从设备中获取的hostname ip_address = mod

2021-04-15 15:02:04 309

原创 python ImportError: no module named Crypto

python ImportError: no module named Crypto问题:当我们from Crypto.Cipher import DES时,会一直提示ImportError: no module named Crypto解决办法仅需3步:pip uninstall crypto pip uninstall pycryptopip install pycrypto...

2021-04-06 22:58:41 494

原创 golang DES + ECB + pkcs5 + base64加密解密

golang DES + ECB + pkcs5 + base64加密解密package mainimport ( "bytes" "crypto/des" "crypto/sha1" "encoding/base64" "errors" "fmt" "log")func SHA1(data []byte) []byte { h := sha1.New() h.Write(data) return h.Sum(nil)}func getSha1PrngKey(keywo

2021-04-06 22:48:12 621

原创 消息队列Kafka、RocketMQ、RabbitMQ对比

消息队列Kafka、RocketMQ、RabbitMQ对比在高并发业务场景下,典型的阿里双11秒杀等业务,消息队列中间件在流量削峰、解耦上有不可替代的作用。MQ消息队列的技术应用解耦解耦是消息队列要解决的最本质的问题最终一致性最终一致性指的是两个系统的状态保持一致,要么都成功,要么都失败。最终一致性不是消息队列的必备特性,但确实可以依靠消息队列来做最终一致性的事情。广播消息队列的基本功能之一是进行广播。有了消息队列,我们之许哟啊关心雄安锡是否送达了队列,至于谁希望订

2021-04-01 14:58:06 124

原创 paramiko 自建代理服务ssh到内网服务器

paramiko 通过自建代理服务ssh到内网服务器原理在一台拥有公网IP的服务器建立代理服务,用户名为username,密码为password,端口为12237,那么就可以在本地通过这台服务器ssh到与之内网相同的服务器[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XBLv5zSf-1617015758956)(C:\Users\wiwide\AppData\Roaming\Typora\typora-user-images\image-20210329185

2021-03-29 19:03:23 1349 1

原创 python 内存管理机制

python 内存管理机制引用计数一个对象可能有0到多个引用垃圾回收当一个对象的引用为0时,该对象会被当做垃圾回收。系统会自动回收,也可以手动回收。import gcgc.collect()内存池机制第3层(顶层)用户对python对象直接操作第2层和第1层,由python的接口函数Pymem_Malloc实现,若请求的内存在1~256字节之间就使用内存池管理系统进行分配。调用malloc函数分配内存,但是每次只会分配一个256k大小的内存,并且不会使用fre

2021-03-29 18:03:23 70

原创 fastapi loguru日志管理

fastapi loguru日志管理与传统的logging相比,不需要复杂的配置过程,打印的日志更加优雅(彩色的)hans.pyimport loggingfrom types import FrameTypefrom typing import castfrom loguru import loggerclass InterceptHandler(logging.Handler): def emit(self, record: logging.LogRecord) -&

2021-03-29 18:01:37 2416

原创 python click命令行界面创建工具

python click命令行界面创建工具定义:它旨在使编写命令行工具的过程既快速又有趣,同时还防止由于无法实现预期的CLI API而引起的挫败感。优点:命令的任意嵌套自动帮助页面生成支持在运行时延迟加载子命令安装 pip install clickclick.optionoption 最基本的用法就是通过指定命令行选项的名称,从命令行读取参数值,再将其传递给函数。我们除了设置命令行选项的名称,我们还会指定默认值,help 说明等,option 常用的

2021-03-29 17:44:57 237

原创 Django ImageField返回完整url

Django ImageField返回完整urlmodels.pyclass Logo(BaseModel): """ logo表 """ Logo_TYPE = ( (0, "安全意识学习"), (1, "产品与服务"), (2, "内网设备类型"), (3, "其他") ) title = models.CharField(max_length=50, null=True, blank

2021-03-29 14:38:22 1116

原创 Django logging 输出到elasticsearch

Django logging日志写入到ES本文使用cmanaha的代码,针对Django项目做适配原理就是继承logging.Handler重写emit,实现日志刷入ES的逻辑设计较好的地方是引入了多线程的定时器和锁,通过列表容器实现批量刷入ES,治理用到了ES的Bulk方法,效率高序列化类#!/usr/bin/env python3 from elasticsearch.serializer import JSONSerializer class CMRESSeria

2021-03-29 13:17:08 431

原创 django Token权限认证

django Token权限认证users.models.py# Create your models here.from rest_framework.authtoken.models import Tokenclass PrivateToken(Token): """ 继承Token模型,方便后期扩展 """ class Meta: verbose_name = 'Private Token'users.authenticatio

2021-03-29 11:44:18 380

原创 python 设计模式之迭代器模式

python 设计模式之迭代器模式定义:简单地说,迭代器模式就是一种通用性的可以遍历容器类型(如序列类型、集合类型等)的实现方式。使用迭代器模式,可以不关心遍历的对象具体是什么(如字符串、列表、字典等等),也不需要关心遍历的实现算法是什么,它关心的是从容器中遍历/取出元素的结果。案例:#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zh

2021-03-27 21:20:35 150

原创 python 设计模式之适配器模式

python 设计模式之适配器模式定义:将一个类的接口变换成客户端期待的另一种接口,从而原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式和装饰器模式有一定的相似性,都起包装的作用,但二者本质上又是不同的,装饰器模式的结果,是给一个对象增加了一些额外的职责,而适配器模式,则是将另一个对象进行了”伪装“。两个类似的事情相似,但具有不同的接口时要使用该模式,可以使客户端统一调用同一接口。适配器通常是对现在业务的补偿式应用,在设计阶段尽量不要用适配器模式。优点:适配器模式可以

2021-03-26 17:47:46 294 3

原创 python 设计模式之观察者模式

python 设计模式之观察者模式定义:观察者模式也叫发布订阅模式,定义了对象之间一对多依赖,当一个对象改变状态时,这个对象的所有依赖者都会受到通知并按照自己的方式进行更新。举个现实生活的例子,职员们趁老板不在,都在玩着自己的东西,同时观察着前台小姐姐,前台小姐姐在老板回来的时候,发布通知让各同事回到工作状态。职员们:都是观察者,时刻观察着前台小姐姐,等她提前通知老板的到来。# 看股票的职员class StockClerk: def __init__(self, name):

2021-03-26 14:30:41 292

原创 python 设计模式之单例模式

python 设计模式之单例模式定义:让类创建的对象,在系统中只有唯一的一个实例应用场景:资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。控制资源的情况下,方便资源之间的互相通信。如线程池等。网站的计数器应用配置多线程池数据库配置,数据库连接池‘应用程序日志应用案例:#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Ema

2021-03-25 22:15:45 64

原创 python 设计模式之装饰器模式

python 设计模式之装饰器模式定义:在不修改原有代码的前提下,增加额外的功能。装饰器的返回值是一个函数对象。使用场景:插入日志、性能测试、事务处理、缓存、权限校验等案例:#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zhang@wiwide.com# @Time : 2021/3/25 20

2021-03-25 21:09:25 218

原创 python 设计模式之工厂模式、抽象工厂模式

python 设计模式之工厂模式、抽象工厂模式1、工厂模式定义:定义一个用于创建对象的函数,让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。优点:良好的封闭性,代码结构清晰。一个对象的创建是有条件约束的,入一个调用者需要一个具体的产品对象,只要知道这个产品的类名(或约束字符串)就可以了,不用知道创建者的艰辛过程,降低模块间的耦合。工厂模式的扩展性非常优秀。在增加产品类的情况下,只要适当地修改具体的工厂类或扩展一个工厂类,就可以完成 “拥抱变化”。屏蔽产品类。一个产

2021-03-24 21:24:01 167

原创 ApScheduler每月指定第几天执行

ApScheduler每月指定第几天执行业务需求:若每月某天执行,当指定天大于当月最大天数时,则当月最后一天执行。例如:指定每月31日执行,那么2月份在28号执行,4、6、9、11月份在30号执行。具体闰年和平年没有细分。#!/usr/bin/env python3# -*- coding: utf-8 -*-# @Author : Charlie ZHANG# @Email : charlie.zhang@wiwide.com# @Time

2021-03-24 11:23:48 1291

原创 fastapi跨域请求携带cookie

fastapi跨域请求携带cookie

2021-03-24 11:01:45 550

空空如也

空空如也

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

TA关注的人

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