1.1AOP的概念简单地说,AOP就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理(Transactions),日志管理(logging,tracing,profilingandmonitoring记录跟踪优化校准),权限控制(Authentication),同步(Synchronization),封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。实质上,AOP只是OOP的一种补充或某种改进,它转
系统 2019-08-29 22:12:50 1801
1.一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Sessionflush或close之后,该Session中的所有Cache就将清空。2.二级缓存与一级缓存其机制相同,默认也是采用PerpetualCache,HashMap存储,不同在于其存储作用域为Mapper(Namespace),并且可自定义存储源,如Ehcache。3.对于缓存数据更新机制,当某一个作用域(一级缓存Session/二级缓存Na
系统 2019-08-29 22:10:20 1801
说了那么多,相信你对小步快跑的概念有了一个初步的印象,但理解还不是很深。让我们来看一看一个实际工作中的例子,来亲身感受一下什么是大布局,什么是大设计,什么是小设计。还是回到前面那个HelloWorld的例子,起初的需求总是简单而清晰的。当用户登录一个网站时,网站往往需要给用户打一个招呼:“hi,XXX!”。同时,如果此时是上午则显示“Goodmorning!”,如果是下午则显示“Goodafternoon!”,除此显示“Goodnight!”。对于这样一个
系统 2019-08-29 21:59:04 1801
这些日子在公司测试机顶盒游戏,每次启动游戏的时候都要在windows黑色的dos窗口输命令,非常不方便,于是借着自己刚学的一点点python+wxPython的知识,写了这个telnet客户端,功能比较简单,根据需要可以再作修改。界面用wxGlade生成,本来我不喜欢wxGlade的,觉得不是很好用,但用着用着发现其实还不错,生成的代码也很容易和自己的代码结合。输入指令的输入框有默认的指令提示,为了方便写了个COMMAND指令列表,这是公司里用的,可以在源
系统 2019-08-12 09:30:17 1801
os模块描述:python标准库中的一个用于访问操作系统功能的模块。作用:用来实现跨平台访问常用操作:os.sep系统路径的分隔符>>>importos>>>os.sep'/'#windows上运行结果为:\\#windows上的pycharm运行结果为:\#Linux运行结果为:/os.linesep输出当前平台使用的行终止符>>>importos>>>os.linesep'\n'os.environ获取系统环境变量os.getcwd()获取当前工作路径
系统 2019-09-27 17:56:35 1800
#-*-coding=utf-8-*-importjsonimportrequestsheader={'User-Agent':'googlespider','Content-Encoding':'gzip','X-Forwarded-For':'202.101.43.22',}classBusiness(object):def__init__(self):passdefmy_JSONDecodeError(self):"""我出现JSONDecodeEr
系统 2019-09-27 17:56:35 1800
try:print('1111')#1/0print('2222')#name#2+'3'#[][3]#{}['k']ret=int(input('number>>>'))print(ret*'*')exceptValueError:print('输入的数据类型有误')exceptException:print('你错了,老铁')else:print('没有异常的时候执行else中的代码')print('===========')deffunc():try
系统 2019-09-27 17:55:50 1800
最近新需求来了,要给系统增加几个资源权限。尽量减少代码的改动和程序的复杂程度。所以还是使用装饰器比较科学之前用了一些登录验证的现成装饰器模块。然后仿写一些用户管理部分的权限装饰器。比如下面这种defpermission_required(permission):defdecorator(f):@wraps(f)defdecorated_function(*args,**kwargs):ifnotcurrent_user.can(permission):ab
系统 2019-09-27 17:55:30 1800
Zabbix没有报表导出的功能,于是通过编写脚本导出zabbix数据并发邮件。效果如下:下面是脚本,可根据自己的具体情况修改:#!/usr/bin/python``#coding:utf-8``importMySQLdb``importtime,datetime``importxlsxwriter``importsmtplib``from``email.mime.textimportMIMEText``from``email.mime.multiparti
系统 2019-09-27 17:55:05 1800
前言今天我们再说一下pytest框架和unittest框架相同的fixture的使用,了解unittest的同学应该知道我们在初始化环境和销毁工作时,unittest使用的是setUp,tearDown方法,那么在pytest框架中同样存在类似的方法,今天我们就来具体说明。先附上官方文档的一段说明1.每个级别的setup/teardown都可以多次复用2.如果相应的初始化函数执行失败或者被跳过则不会执行teardown方法3.在pytest4.2之前,xu
系统 2019-09-27 17:54:40 1800