FastAPI框架使用枚举来型来限定参数
FastAPI框架验证时,有时需要通过枚举的方式来限定参数只能为某几个值中的一个,这时就可以使用FastAPI框架的枚举类型Enum了。代码如下: #引入Enum模块 fromfastapiimportFastAPI fromenumimportEnum classSexModel(str,Enum): man="man" woman="woman" app=FastAPI() @app.get("/model/{sexmodel}") #sexmodel:SexModel限定参数必须是sexmodel:SexModel枚举中的 asyncdefget_model(sexmodel:SexModel): #也可以不用下面的判断方法,添加了上面的模型会自动限定 #枚举判断方法1, ifmod...[>>…]
使用Electron进行桌面端开发时的热加载方案
执行下面的npm命令安装electron-reloader。慢的话使用cnpm吧,安装成功后,package.json内容会自动修改。 #安装electron-reloader npminstall--save-develectron-reloader #package.json内容自动修改如下 { #package.json会自动增加devDependencies这项 "devDependencies":{ "electron":"^9.1.0", "electron-reloader":"^1.0.1" } } 需要我们操作的一步就是在main.js(Electron项目入口文件)文件中增加如下代码: #main.js文件修改 const{app,BrowserWindow}=require('electron') //热加...[>>…]
使用Electron进行win桌面端的开发
想试试桌面端的开发,但又不想去接触C#、WPF之类的语言,了解了一下,Electron是一个可以开发桌面端软件又和web开发有点关系的方案,Electron是由Github开发,基于Chromium和Node.js,使用JavaScript、HTML和CSS等Web技术创建跨平台原生桌面应用的框架。兼容Mac、Window和Linux,它构建的应用可在这三个操作系统上面运行,借助Electron,我们可以使用纯JavaScript来调用丰富的原生APIs。 Electron的开发环境搭建,我这里是Windows10,需要安装的环境包括Python、node...[>>…]
Python中的值类型、引用类型以及类的-静态-变量
Python中的数据类型分为值类型和引用类型,值类型通常包含int、float、bool、str、tuple,值类型是不可变的。引用类型包含list、set、dict类型,引用类型是可变的。在python的面向对象中,类不存在像其它语言中存在的static关键词,因此不能使用修饰实现类的静态变量。python面向对象中只有实例变量和类变量两变量概念,根本不存在静态变量的概念。 接下来我们来看下面这个例子以及其运行结果,结果中有横线来区分开每个执行结果,比较好分别,如下: #定义四个方法...[>>…]
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...[>>…]