对接海康的系统,取出客流信息后,发现返回的结果是乱序的, 并没有按照时间先后顺序排列。
1 | [ |
Python的 sorted 内置函数提供了一个lambda 参数可以对它排序。
1 | data = hik_http_request(url, body).json()['data']['list'] |
排序后的结果:
1 | [ |
对接海康的系统,取出客流信息后,发现返回的结果是乱序的, 并没有按照时间先后顺序排列。
1 | [ |
Python的 sorted 内置函数提供了一个lambda 参数可以对它排序。
1 | data = hik_http_request(url, body).json()['data']['list'] |
排序后的结果:
1 | [ |
官网的例子 https://www.layui.com/demo/form.html
1 | <div class="layui-input-block"> |
如果此时input是动态生成的,比如这样:
1 | <div class="layui-input-inline" style="width:260px"> |
如果用这样的写法, 发现不好用,在浏览器里debug后发现,key被直接当错字符串传下去了,并没有翻译成真正的值,真是坑。
1 | var arr = data['roles'].split('#'); |
所以只能改成这样的写法,用选择器点击上,但是样式没有发生变化,检查页面发现,checkbox的按钮实际上已经显示checked了。
1 | var arr = data['roles'].split('#'); |
查了文档后发现,只要重新渲染一下就可以了。
https://www.layui.com/doc/base/faq.html#form
1 | form.render('checkbox'); |
开发了一套web的系统,服务器端用的Python实现,现在需要客户用浏览器登录的时候检查客户电脑上是否插上了软件锁加密狗,如果有则继续登录,如果没有果断拒绝登录。
最后选择了飞天信诚的rockey ram,淘宝评价看起来不错。
https://www.ftsafe.com.cn/products/rockey/ROCKEY-ARM
从售前获取到的开发包是Rockey1Smart–V1.0007-20180201。
加密狗支持一系列的加密算法,当前的加密狗版本是内置RSA、ECC、DES、SHA1和国密算法(SM2、SM3、SM4)等高数据加密算法,我们这里直接选中RSA。
加密狗提供管理软件和接口,允许我们写入需要的对应各种算法的密钥,同时又提供接口供我们调用,传入明文,就会得到密文。同时加密狗又能保证我们写入的密钥是完全不可以读出来的,这样就保证了私钥的安全。
在需要验证加密狗的时候,比如登录的时候,我们先从服务器端申请一个10位的随机字符串,然后在浏览器调用JS API获取到加密狗计算的密文,然后把密文和账号密码一同发往服务器,服务用公钥和存在session里的随机字符串去验证这段密文是否有效,如果是就正常返回逻辑。
另外如果服务器也需要保护的话,服务器上也插上软件锁加密狗,但是加密狗里存的是公钥,服务器端验证的时候直接调用加密狗的算法去验证,而不是自己算,这样就保证了公钥的安全。
1 | <div class="login-content"> |
1 | var ctrl = null; |
1 |
|
1 | yum install -y wget && wget -O install.sh https://notdocker.xp.cn/install.sh && sh install.sh |
1 |
|
现在只是在登录界面进行了验证,理论上在Token等授权有效期内,如果用户不访问登录界面,加密狗就不会被验证,所以加密狗是可以被拔下来在其他的电脑上登录的。
后面可以添加如下的功能去预防这种情况。
这样基本上就能实现时刻验证加密狗的存在了,但是应该会损失一下效率,在客户端不多的情况下,完全可以使用。
去除输入中的字母和其他字符,只留下数字
1 | data = filter(lambda ch: ch in '0123456789.', str(data)) |
给朋友帮忙,需要根据天天基金–场内交易基金净值折价率一览表把每个基金的前十名的股票持仓信息做到同一个表格中,用于后面的基金分析和挑选。
列表: http://fund.eastmoney.com/cnjy_jzzzl.html
总结几点:
收到一个来自芬兰的同事的Ni Hao, 还挺高兴。 第一次直接在ticket里回复中文。
PyCharm 路径符号从斜线\变成了人民币¥符号, 这个应该是字体的原因引起的。
修改方法:
这样应该就可以正常的显示路径了。
一场疫情,改变了太多!
所在的部门,从全site最有前途的组一下子变成了最风雨飘摇的组。上半年忙死,下半年组里动荡,大家都接近于划水摸鱼的状态。
但是不管无论未来如何,都要把自己收拾利索,无论何时都要有能力去面对新的工作挑战。
年终统计,CSFS ticket总数373,刷出了一个破纪录的数据,开心,完结撒花。
goodbye 2020, good luck 2021!
一张图记住快捷键
Ansible操作三个node,其中有一个pod(app_api_pod_name)运行其中的一个上。
Step 1 需要判断这个pod中有没有存在一个文件,这个地方希望只在第一个node1上执行就可以了,这样其他的node都会skip,
如果是这样skip其他的node的时候,仍然会进行赋值,导致最后的结果是CA_exist无法registe,除了node1,其他node拿到CA_exist都是空值。
所以这个地方就理解了,ansible的所有变量,包括常量和临时变量都是按node进行区分和隔离的,不能共享。
Step 2 就是用来解决这个问题,在其他的node的变量组把这个值给赋值上,关键取值 hostvars[groups[‘role_control’][0]].CA_exist.rc
1 |
|