- 博客(48)
- 收藏
- 关注
原创 DataEase大屏iframe嵌入自建网站(React)
如果是docker 安装, web默认端口是80,可以在挂载目录的.env 文件中修改 DE_PORT=8081。完成以上步骤,就可以在自建网站中展示dataease 大屏了,非常好用!
2024-03-21 11:57:02
1327
原创 npm install 报错 npm ERR! code CERT_HAS_EXPIRED
【代码】npm install 报错 npm ERR!
2024-01-24 11:07:15
1146
1
原创 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
1527
原创 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
1478
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
6622
原创 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
504
原创 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
766
原创 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
2027
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
472
原创 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
335
原创 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
170
原创 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
1219
原创 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
499
原创 Django 数据库迁移报 table already exists
Django 数据库迁移报 table already exists数据库迁移时执行:python manage.py migrate --fake
2021-05-28 11:35:57
915
原创 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
1368
原创 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
822
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
330
原创 python join 和遍历后使用+的区别
python join 和遍历后使用+的区别字符串是不可变类型,如果要进行字符串的拼接,只能申请新的内存保存新拼接的字符串。这样每进行一次拼接就需要申请一次内存并存储结果,这会使得程序效率低。join只会进行一次内存申请,因此运行效率相对于+会快很多。...
2021-04-15 15:27:00
168
原创 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
316
原创 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
375
原创 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
541
原创 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
729
原创 消息队列Kafka、RocketMQ、RabbitMQ对比
消息队列Kafka、RocketMQ、RabbitMQ对比在高并发业务场景下,典型的阿里双11秒杀等业务,消息队列中间件在流量削峰、解耦上有不可替代的作用。MQ消息队列的技术应用解耦解耦是消息队列要解决的最本质的问题最终一致性最终一致性指的是两个系统的状态保持一致,要么都成功,要么都失败。最终一致性不是消息队列的必备特性,但确实可以依靠消息队列来做最终一致性的事情。广播消息队列的基本功能之一是进行广播。有了消息队列,我们之许哟啊关心雄安锡是否送达了队列,至于谁希望订
2021-04-01 14:58:06
147
原创 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
1623
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
90
原创 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
2572
原创 python click命令行界面创建工具
python click命令行界面创建工具定义:它旨在使编写命令行工具的过程既快速又有趣,同时还防止由于无法实现预期的CLI API而引起的挫败感。优点:命令的任意嵌套自动帮助页面生成支持在运行时延迟加载子命令安装 pip install clickclick.optionoption 最基本的用法就是通过指定命令行选项的名称,从命令行读取参数值,再将其传递给函数。我们除了设置命令行选项的名称,我们还会指定默认值,help 说明等,option 常用的
2021-03-29 17:44:57
288
原创 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
1218
原创 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
516
原创 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
422
原创 python 设计模式之迭代器模式
python 设计模式之迭代器模式定义:简单地说,迭代器模式就是一种通用性的可以遍历容器类型(如序列类型、集合类型等)的实现方式。使用迭代器模式,可以不关心遍历的对象具体是什么(如字符串、列表、字典等等),也不需要关心遍历的实现算法是什么,它关心的是从容器中遍历/取出元素的结果。案例:#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Email : charlie.zh
2021-03-27 21:20:35
198
原创 python 设计模式之适配器模式
python 设计模式之适配器模式定义:将一个类的接口变换成客户端期待的另一种接口,从而原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式和装饰器模式有一定的相似性,都起包装的作用,但二者本质上又是不同的,装饰器模式的结果,是给一个对象增加了一些额外的职责,而适配器模式,则是将另一个对象进行了”伪装“。两个类似的事情相似,但具有不同的接口时要使用该模式,可以使客户端统一调用同一接口。适配器通常是对现在业务的补偿式应用,在设计阶段尽量不要用适配器模式。优点:适配器模式可以
2021-03-26 17:47:46
348
3
原创 python 设计模式之观察者模式
python 设计模式之观察者模式定义:观察者模式也叫发布订阅模式,定义了对象之间一对多依赖,当一个对象改变状态时,这个对象的所有依赖者都会受到通知并按照自己的方式进行更新。举个现实生活的例子,职员们趁老板不在,都在玩着自己的东西,同时观察着前台小姐姐,前台小姐姐在老板回来的时候,发布通知让各同事回到工作状态。职员们:都是观察者,时刻观察着前台小姐姐,等她提前通知老板的到来。# 看股票的职员class StockClerk: def __init__(self, name):
2021-03-26 14:30:41
341
原创 python 设计模式之单例模式
python 设计模式之单例模式定义:让类创建的对象,在系统中只有唯一的一个实例应用场景:资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。控制资源的情况下,方便资源之间的互相通信。如线程池等。网站的计数器应用配置多线程池数据库配置,数据库连接池‘应用程序日志应用案例:#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author : Charlie Zhang# @Ema
2021-03-25 22:15:45
86
原创 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
283
原创 python 设计模式之工厂模式、抽象工厂模式
python 设计模式之工厂模式、抽象工厂模式1、工厂模式定义:定义一个用于创建对象的函数,让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。优点:良好的封闭性,代码结构清晰。一个对象的创建是有条件约束的,入一个调用者需要一个具体的产品对象,只要知道这个产品的类名(或约束字符串)就可以了,不用知道创建者的艰辛过程,降低模块间的耦合。工厂模式的扩展性非常优秀。在增加产品类的情况下,只要适当地修改具体的工厂类或扩展一个工厂类,就可以完成 “拥抱变化”。屏蔽产品类。一个产
2021-03-24 21:24:01
212
原创 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
1447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人