python的fabric模块实现run运行错误以及run执行shell的结果捕获
在jenkins发布代码前有必要进行代码自动化测试,而最终代码是否需要发布就需要依据自动化测试的结果来处理,jenkins中使用fabric模块调用远程服务器执行shell脚本,比如在方法中调用远程服务器执行docker容器中的代码自动测试,我们期望对run执行的shell脚本进行判断,目标实现逻辑如下: #取得shell执行结果 result=run("dockerexec-itcontainpytest/app/--cov") #根据结果进行处理 ifresult=="Ok": print("测试成功通过,继续发布") else: print("测试失败,终止发布")  ...[>>…]
常见的WSGI服务器Gunicorn、uWSGI了解
常见的WSGI服务器有: 1.Gunicorn:Gunicorn是使用Python实现的WSGI服务器,提供http服务,并在worker工作方式上提供了多种选择,其默认的work_class是sync,即同步阻塞的网络模型,性能不佳。其它的工作方式还有eventlet、gevent(利用python协程实现)、tornado(利用Tornado框架实现)、gthread(采用线程工作模式)、gaiohttp(利用aiohttp库实现异步I/O,支持websocket)。在多进程模式中除了使用多CPU的同时,还可以使用协程来提供并发支撑。和nginx类似,Gunicorn也是一个...[>>…]
Python-smtplib邮件发送Relaying denied. IP name possibly forged[IP地址]
使用PYTHON-smtplib需要先安装sendmail,使用aptinstallsendmail命令安装vcb即可,安装完成后sendmail的配置文件在/etc/mail/中,日志文件位于/var/log/目录中,mail.log、mail.err,查看这两个文件信息来定位问题。可以通过命令mail、mailq查看接收到的邮件和待发送的邮件。 $whereissendmail sendmail:/usr/sbin/sendmail/usr/lib/sendmail/usr/share/sendmail 进行邮件发送代码很少,引入模块定义几个参数执行就行了。代码示例如下: importsmtplib fromemail.mi...[>>…]
fastApi框架隐藏没多大意义的Schemes模型部分内容
之前有篇文章提到python框架fastApi怎么关闭接口文档、隐藏部分接口以及关闭Schemes,但并没有实现关闭schemes的功能。http://47.93.183.36/article/936.htmlSchemes这个部分看着不爽啊,而且烦的是它默认打开着的,占了页面很大的一个高度,今天看着不爽就想了想办法。 之前的想法是从fastAPI框架层去关闭它的功能,但找了找框架文档,fastAPI框架也许认为这个东西很有意义吧,根本没有提供阉割它的入口,今天换了个想法,不去干掉它就去把它隐藏掉呗,在页面查看了...[>>…]
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...[>>…]
Python中的值类型、引用类型以及类的-静态-变量
Python中的数据类型分为值类型和引用类型,值类型通常包含int、float、bool、str、tuple,值类型是不可变的。引用类型包含list、set、dict类型,引用类型是可变的。在python的面向对象中,类不存在像其它语言中存在的static关键词,因此不能使用修饰实现类的静态变量。python面向对象中只有实例变量和类变量两变量概念,根本不存在静态变量的概念。 接下来我们来看下面这个例子以及其运行结果,结果中有横线来区分开每个执行结果,比较好分别,如下: #定义四个方法...[>>…]
python实现单例模式的常用三种方法-基于__new__,使用装饰器
涉及到类的使用就会有类的实例化,就会有类单例实现的需求,因为重复实例化会浪费资源。python中的单例模式与别的语言相比,单例实现的方法更丰富。虽然python实现单例的模式的方法有很多,不过在体验后我觉得有必要了解和掌握的也就是使用模块和使用装饰器两种,然后了解一下使用__new__方法实现单例。1.使用python模块Python模块本身就包含了一个单例实现逻辑,在第一次导入时,会生成.pyc文件,之后导入,就会直接加载.pyc,因此如果在我们在模块中new实例对象,然后在其它的地方直接引用...[>>…]