python实现单例模式的常用三种方法-基于__new__,使用装饰器
涉及到类的使用就会有类的实例化,就会有类单例实现的需求,因为重复实例化会浪费资源。python中的单例模式与别的语言相比,单例实现的方法更丰富。虽然python实现单例的模式的方法有很多,不过在体验后我觉得有必要了解和掌握的也就是使用模块和使用装饰器两种,然后了解一下使用__new__方法实现单例。1.使用python模块Python模块本身就包含了一个单例实现逻辑,在第一次导入时,会生成.pyc文件,之后导入,就会直接加载.pyc,因此如果在我们在模块中new实例对象,然后在其它的地方直接引用...[>>…]
内网穿透工具frp的应用-frpc,frps
内网穿透即内网映射,可以将局域网变公网,从而可以让外网访问本地局域网内的服务。内网穿透原理技术有这么几种:1,通过公网服务器转发,这是目前市场上大多三方的内网穿透服务方式。2,P2P穿透,端对端连接通信,即常说的UDP打洞方式,受国内复杂网络环境影响打洞成功机率不高。3,通过公网服务器响应对二端握手穿透,穿透成功时直接二端P2P打洞直联。 内网穿透工具有很多,比如Ngrok、花生壳、frp。原理基本一样,这里主要了解一下FRP,frp分为客户端和服务端,frp...[>>…]
Jenkins发布脚本及逻辑的优化-隐藏发布脚本保护服务器的账号数据
之前使用做项目自动部署,我的发布脚本是放在代码里面的,但因为代码里包含了服务器的登录账号以及所有操作过程,一下子就全部暴露出来了,觉得很不好,于是在想进行怎样的优化,后来想想完全可以在jenkins服务器上做这些事情,而和代码可以完全解耦开来。 我的Jenkins是使用docker部署在服务器容器中,经过自己的思考测试,我最后将发布脚本存放在jenkins容器里某个路径下,然后写一些简单的shell脚本命令放在容器的/usr/bin/命令中,在jenkins执行发布构建的shell...[>>…]
使用jenkins发布vue项目-npm自动打包发布的实现
发布vue项目和发布其它的项目不同的地方在于需要使用npm进行安装依赖包,然后再基于当前的依赖包打包出dist文件夹及其内容,然后将生成的静态文件内容发布到服务器上,我之前也发布过vue项目,但那时为了省事,直接由开发人员将项目打包,并将打包后的代码和src源码一起上传至svn/git仓库,然后jenkins中只需要将dist文件中的内容发布到服务器即可。虽然也可以,但难免不够自动化。 使用jenkins发布时可以直接配置自动打包的过程,首先需要在jenkins服务器上安装node...[>>…]
在ubuntu好部署jenkins发布vue项目时遇到的一些问题及解决方法
1.问题:webpack-dev-server不是内部或外部命令,也不是可运行的程序解决:使用webpack要安装webpack-cli这个包,才可以调用webpack和webpack-dev-server这些命令。 npminstallwebpackwebpack-dev-serverwebpack-cli--save-dev 2.webpack——Error:Cannotfindmodule'extract-text-webpack-plugin'解决:在项目目录下依次执行 #全局安装npminit: npminit-y-g #全局安装webpack: npminstallwebpack-g npminstallwebpack--save-dev-g #全局安装extract-text-webpack-plugin: npminstall--saveextract-text-webpack-pl...[>>…]
docker已启动容器如何修改端口等启动配置
docker在创建容器的时候可以自定义指定端口,也可以通过多个-p选项添加多个端口映射,但如果已经创建容器(特别是已经在容器中执行一些命令安装了一些业务中需要的环境),这时想保留容器已有配置和环境的前提下又想修改端口映射就需要使用其它的办法了。 由于已经对原有镜像进行了修改,如果此时删除容器再修改端口启动镜像容器就需要重新安装已经执行的环境安装工作,挺麻烦,特别是你根本没有记录都执行了一些什么命令来完善环境,此时又需要重新来一遍。此时还有几...[>>…]
FastApi关闭接口文档、隐藏部分接口以及关闭schemes
FastApi框架可以直接生成自带的接口文档,但在使用的时候我们会碰到如下的真实需求。1.测试环境提供接口文档并测试,但是线上环境不能暴露这些信息。2.某些模块中我们可能有的方法不想暴露出来。3.页面中显示的Schemas作用并不大,有时不如不展现。怎么处理?FastApi提供了一些方法。1.要关闭接口文档,FastAPI在对象实例化的时候可以传递docs_url和redoc_url两个参数,用以配置这两个接口地址的自定义,同时也支持直接传None用以表示关闭接口方文档,如下: fromfastapiimportFastAPI #关闭接口文档 app=FastAPI(doc...[>>…]