刘悦的技术博客

v3u.cn
私信 关注
v3u.cn
码龄13年

v3u.cn

  • 63,131
    被访问量
  • 101
    原创文章
  • 64,468
    作者排名
  • 79
    粉丝数量
  • 于 2008-09-04 加入CSDN
获得成就
  • 获得33次点赞
  • 内容获得29次评论
  • 获得233次收藏
荣誉勋章
兴趣领域
  • #后端
    #Redis
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

奇技淫巧玄妙无穷| M1 mac os(苹果/AppleSilicon)系统的基本操作和设置

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_191最近有个朋友跟我说,说他新入职了一家公司,公司还不错,给他配了一台Mac,但是呢他以前一直在Windows环境下开发,对Mac os并不了解,他感到很彷徨,所以本次呢,我们来分享一下,当手头儿有一部崭新的Mac,我们应该怎么上手操作和配置,让它成为我们开发的好帮手。首先我们来看一下键位上的差异,传统Windows系统的键盘以control键为主,以左小指为基准,食指为辐射范围,组合快捷键,比如说我们非常熟悉control+c 和
原创
88阅读
0评论
1点赞
发布博客于 11 天前

石火电光追风逐日|前端优化之次时代图片压缩格式WebP的项目级躬身实践(Python3 PIL+Nginx)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_190我们知道,在前端界有一个共识:速度就是生命,带宽就是金钱。怎样将页面加载速度有效提升是无数前端工程师无时不刻在思考的课题,目前的网络环境中,除了视频,图片仍旧是占用流量较大的一部分,对于app端尤其如此,因此,如何在保证图片视觉不失真的前提下缩小图片体积,对于节省带宽和电池电量都十分重要,因此Google在十年前提出了一种新的图片压缩格式 :WebP,给图片的优化提供了新的方向。WebP的优势在于它具有更优的图像数据压缩算法,在拥
原创
50阅读
0评论
0点赞
发布博客于 1 月前

金玉良缘易配而木石前盟难得|M1 Mac os(Apple Silicon)天生一对Python3开发环境搭建(集成深度学习框架Tensorflow/Pytorch)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_189笔者投入M1的怀抱已经有一段时间了,俗话说得好,但闻新人笑,不见旧人哭,Intel mac早已被束之高阁,而M1 mac已经不能用真香来形容了,简直就是“香透满堂金玉彩,扇遮半面桃花开!”,轻抚M1 mac那滑若柔荑的秒控键盘,别说996了,就是007,我们也能安之若素,也可以笑慰平生。好了,日常吹M1的环节结束,正所谓剑虽利,不厉不断,材虽美,不学不高。本次我们尝试在M1 Mac os 中搭建Python3的开发环境。一般情况
原创
253阅读
1评论
1点赞
发布博客于 1 月前

别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境(2021最新攻略)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_188在每个开发者心里,都会有一门“最好”的语言,在这个世界的某个深处,在一些矫矫不群的人们心中,这门语言的名字叫做Ruby,它今年二十八岁了,历史和Java一样的悠久,但是它没有大厂背书、它的性能被开发者诟病、时至今日依然无法高效利用多核资源,甚至于它每年都要被“死亡”一次,相比于有太阳计算机系统、甲骨文、IBM 这些大公司支持的 Java,它是那么的一无所有,但是,它又拥有全世界最虔诚的“信徒”,拥有最活跃的开发者社区,这一切,又让
原创
136阅读
0评论
0点赞
发布博客于 1 月前

无意苦争春,一任群芳妒!M1 Mac book(Apple Silicon)能否支撑全栈工程师的日常?(Python3/虚拟机/Docker/Redis)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_187就像大航海时代里突然诞生的航空母舰一样,苹果把玩着手心里远超时代的M1芯片,微笑着对Intel说:“不好意思,虽然你也玩桌面芯片,但是,从今天开始,游戏就已经结束了,X86?还是省省吧。”十五年前,iPhone横空出世,乔布斯告诉世人什么才叫做真正的智能手机,十年前,A4处理器粉墨出场,iPhone瞬间猛虎添翼,性能这两个字从此没有友商敢在苹果面前提及,iPad更是在业界呼风唤雨,几乎把整个平板市场都收入囊中,在人们的脑海中,
原创
147阅读
0评论
0点赞
发布博客于 2 月前

人理解迭代,神则体会递归,从电影艺术到Python代码实现神的逆向思维模式

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_186“从来如此,便对么?”,鲁迅先生在《狂人日记》中借狂人之口在月光下发出的质疑与呐喊,是的,从来如此,一般人的思维模式就是从来如此,以高数为例子,我们大抵都是先从数分、线代、解几去学泛函、抽代、拓扑等,其实就是按照标准路子来,这样做理论上可以增加对已学知识的理解程度,并对某些数分、线代中的问题看清其本质有所帮助。数学归纳法其实就是一种迭代(iteration),从一个简单的起点,推广到一般情况。而递归(recursion),则是一种
原创
78阅读
0评论
0点赞
发布博客于 2 月前

一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_1852021年,君不言容器技术则已,欲言容器则必称Docker,毫无疑问,它是当今最流行的容器技术之一,但是当我们面对海量的镜像与容器时,怎样快速精准的对海量容器进行管理和编排就又成了新的课题,此时,由Google开源的Kubernetes(读音[kubə’netis],业界也有称其k8s的,但k8s其实就是文盲版的Kubernetes,只是因为k和s之间有8个字母)就应时而生了,它是一个开源的用于多个主机虚拟成一个云平台后进行容器资源
原创
62阅读
0评论
0点赞
发布博客于 2 月前

虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_1832021年,对于正在找工作的朋友来说,笼罩在新冠肺炎疫情之下,今年的就业季显得更加具有挑战性,更有意思的是,每当这个时候,各种面试经验分享就如同过江之鲫一般,俯拾皆是,因为例子过多,兹不细举。然而这些面试经验大部分都停留在理论阶段,这就造成了一个问题:理论和实际,到底有多大出入?我国古代大名仕曾文正公曾经说:“天下事,在局外呐喊议论,总是无益,必须躬身入局,挺膺负责,方有成事之可冀。”革命先烈李大钊先生也曾感叹:“凡事都要脚踏实地去
原创
63阅读
0评论
0点赞
发布博客于 3 月前

别无分号只此一家,Python3接入支付宝身份认证接口( alipay.user.certify)体系(2021年最新攻略)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_184目前国内身份认证体系做的比较不错的大抵就是支付宝和微信两家了,支付宝的身份验证基于支付宝app的实人认证能力,采用多因子认证技术快速得出认证结果,对于多因子认证技术不太了解的朋友可移步:别让你的服务器(vps)沦为肉鸡(ssh暴力破解),密钥验证、双向因子登录值得拥有进行了解。其作用主要是为了解决线上实人开户、账号实名认证、账号实人登录等场景中个人身份的识别问题,比如你某一天突然心血来潮想当一把韭菜炒炒股,又不想去人多眼杂的营业厅,
原创
716阅读
0评论
0点赞
发布博客于 3 月前

Win10环境前后端分离项目基于Vue.js+Django+Python3实现微信(wechat)扫码支付流程(2021年最新攻略)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_182之前的一篇文章:mpvue1.0+python3.7+Django2.0.4实现微信小程序的支付功能,主要介绍了微信小程序内部支付的流程,然而实际上微信小程序有一定的局限性,也就是用户范围仅限于小程序内部生态圈,在生活中真正具有广泛性、高效性、使用方便性的支付方式还得是扫码支付,扫码的优点在于推广成本低,上至钓鱼台国宾馆,下至发廊地摊都能用,打印出来就完事了,而相比其他支付方式,现金的找零及假钞问题,信用卡的办理门槛、pos机的沉没
原创
141阅读
0评论
0点赞
发布博客于 4 月前

远见而明察近观若明火|Centos7.6环境基于Prometheus和Grafana结合钉钉机器人打造全时监控(预警)Docker容器服务系统

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_181我们知道,奉行长期主义的网络公司,势必应在软件开发流程管理体系上具备规范意识,即代码提交有CR(CodeReview),功能测试上自动化,而功能发布讲究三板斧:灰度、监控、止血。灰度属于测试范畴,止血则是亡羊补牢,今天我们来聊聊监控,提起监控,就不得不提在DepOps(自动化运维)领域鼎鼎有名的Prometheus(普罗米修斯),有人说这个开源系统的名字怎么有点如雷贯耳啊,没错,它的名字就是取自从宙斯手中为人类夺回圣火的古希腊神明普
原创
74阅读
0评论
0点赞
发布博客于 4 月前

金瓯无缺江河一统|Win10系统基于Docker和Python3搭建并维护统一认证系统OpenLdap

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_180OpenLdap(Lightweight Directory Access Protocol)是什么?它其实是一个开源的、具备工业标准特性的应用协议,可以使用TCP协议提供访问控制和维护分布式信息的目录信息。这是一个传统意义上的书面解释,是的,毫无疑问,你会一脸懵逼。好吧,让我们变得感性一点,假如我每天早上使用Twitter想听听懂王又吹了什么牛,登录Twitter账号密码,紧接着又想上Instagram看看女神又post了什么新靓
原创
80阅读
0评论
0点赞
发布博客于 4 月前

海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依赖和被依赖关系,这就会带来一个世界性难题,项目部署的时候需要运维来手动配制服务之间通信的协议和地址,稍有不慎就会导致服务异常,同时如果服务器因为坏道或者其他原因导致更换物理机,重新部署新环境的成本也会非常之高。因此,我们就会寄希望于Docker这种的容器技术可以让我们构建产品所需要的所有的服务能够迅速快捷的重新
原创
149阅读
0评论
0点赞
发布博客于 5 月前

人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_178聊天机器人(ChatRobot)的概念我们并不陌生,也许你曾经在百无聊赖之下和Siri打情骂俏过,亦或是闲暇之余与小爱同学谈笑风生,无论如何,我们都得承认,人工智能已经深入了我们的生活。目前市面上提供三方api的机器人不胜枚举:微软小冰、图灵机器人、腾讯闲聊、青云客机器人等等,只要我们想,就随时可以在app端或者web应用上进行接入。但是,这些应用的底层到底如何实现的?在没有网络接入的情况下,我们能不能像美剧《西部世界》(Westw
原创
255阅读
0评论
0点赞
发布博客于 5 月前

一代版本一代神:利用Docker在Win10系统极速体验Django3.1真实异步(Async)任务

一代版本一代神:利用Docker在Win10系统极速体验Django3.1真实异步(Async)任务原文转载自「刘悦的技术博客」https://v3u.cn/a_id_177就在去年(2019年),Django官方发布3.0版本,内核升级宣布支持Asgi,这一重磅消息让无数后台研发人员欢呼雀跃,弹冠相庆。大喜过望之下,小伙伴们兴奋的开箱试用,结果却让人大跌眼镜:非但说好的内部集成Websocket没有出现,就连原生的异步通信功能也只是个壳子,内部并未实现,很明显的换汤不换药,这让不少人转身投入了Fast
原创
219阅读
0评论
0点赞
发布博客于 6 月前

鸟枪换炮,利用python3对球员做大数据降维(因子分析得分),为C罗找到合格僚机

鸟枪换炮,利用python3对球员做大数据降维(因子分析得分),为C罗找到合格僚机原文转载自「刘悦的技术博客」https://v3u.cn/a_id_176众所周知,尤文图斯需要一座欧冠奖杯,C罗也还想再拿一座欧冠奖杯,为自己的荣誉簙上锦上添花。意甲霸主在意甲虽然风生水起,予取予求,但是在今年欧冠1/8决赛赛场上,被法甲球队里昂所淘汰,痛定思痛,球队解雇了主教练萨里,签约名宿皮尔洛,但是要想在欧冠赛场上夺冠,这还不够,球队还需要什么?没错,需要一名强力中锋,在正印中锋伊瓜因难堪大用的情况下,尤文图斯必须
原创
110阅读
0评论
0点赞
发布博客于 6 月前

聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_175分片上传并不是什么新概念,尤其是大文件传输的处理中经常会被使用,在之前的一篇文章里:python花式读取大文件(10g/50g/1t)遇到的性能问题(面试向)我们讨论了如何读写超大型文件,本次再来探讨一下如何上传超大型文件,其实原理都是大同小异,原则就是化整为零,将大文件进行分片处理,切割成若干小文件,随后为每个分片创建一个新的临时文件来保存其内容,待全部分片上传完毕后,后端再按顺序读取所有临时文件的内容,将数据写入新文件中,最后将
原创
378阅读
0评论
0点赞
发布博客于 7 月前

利用本地HTTPS模拟环境为FastAPI框架集成FaceBook社交三方登录

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_174提起社交,就不得不说马克·扎克伯格(Mark Zuckerberg)一手创办的社交网络(FaceBook)。进入2020年,FaceBook的全球用户数已经突破了30亿,这是什么概念?全球人口大约70亿,除开中国14亿,还有56亿。国外市场是四倍于中国的潜在市场,扣除短期内有上网限制的人群,那也是两倍以上。站在全球视角看问题,说微信、支付宝偏安一隅,其实也并不为过。所以为你的平台集成全球最大用户基数的社交登录系统,显然可以为你带来更
原创
398阅读
0评论
0点赞
发布博客于 7 月前

还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_173一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 100 MB),但事实的真相是,我们选择基础镜像并不是为了体验一下Python语法而已,在此基础上,我们需要调试和安装各种扩展,可能会安装很多三方依赖,甚至预设更多服务,在这种环境下,Alpine就并非是一个很好的选择了,本次我们就来分别在Alpine和Ubu
原创
338阅读
0评论
0点赞
发布博客于 7 月前

心动不如行动,基于Docker安装关系型数据库PostgrelSQL替代Mysql

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_171最近“全栈数据库”的概念甚嚣尘上,主角就是PostgrelSQL,它最近这几年的技术发展不可谓不猛,覆盖OLTP、OLAP、NoSQL、搜索、图像等应用场景,实实在在的全栈性发展。帮助公司解决了数据孤岛、数据平台多、同步一致性、延迟,软硬件成本增加等业务痛点,在互联网、金融、物联网、传统企业等领域得到了广泛的应用。PostgreSQL的应用场景丰富,不亚于商用数据库Oracle,常被业界称为“开源界的Oracle”。至于Mysql
原创
92阅读
0评论
0点赞
发布博客于 8 月前

基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_1702020年,“非著名Web框架”–Ruby on Rails已经15岁了。在今年,Rails 6.0趋于完善,除了拿掉讨厌的Jquery,Webpacker 也成为默认前端打包方案,Sprockets 开始软着陆,未来很可能会和Jquery一样被彻底废弃,这就是历史的进程。由于历史原因,本身就由Ruby撰写的HomeBrew在Mac os系统上大行其道,所以大部分Rails程序员的主力电脑都是Mac book pro,而使用Win
原创
128阅读
0评论
0点赞
发布博客于 8 月前

基于Python3(Autosub)以及Ffmpeg配合GoogleTranslation(谷歌翻译)为你的影片实现双语版字幕(逐字稿)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_169为影片加字幕其实是一件非常耗费时间的事情,尤其是对于打字慢的朋友来说。当然不光为影片加字幕,在其他领域,类似的逐字稿也是工作中避免不了的内容。比如写论文,如果内容中有访谈,就必须要附上逐字稿,又或者是会议的记录等等。本次使用基于Python3的AutoSub库对实时语音进行识别,然后再通过GoogleTranslation的在线API接口对语音识别后的内容进行翻译,这样就可以得到一份双语字幕(逐字稿),这里的双语不只针对国语+英语组
原创
707阅读
1评论
2点赞
发布博客于 8 月前

Python算法之动态规划(Dynamic Programming)解析:二维矩阵中的醉汉(魔改版leetcode出界的路径数)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_168现在很多互联网企业学聪明了,知道应聘者有目的性的刷Leetcode原题,用来应付算法题面试,所以开始对这些题进行“魔改”,比如北京某电商平台的这道题:有一个正方形的岛,使用二维方形矩阵表示,岛上有一个醉汉,每一步可以往上下左右四个方向之一移动一格,如果超出矩阵范围他就死了,假设每一步的方向都是随机的(因为他是醉的),请计算n步以后他还活着的概率。例如:输入矩阵大小2*2,起点(0,0),随机走出一步 n = 1 输出0
原创
517阅读
1评论
0点赞
发布博客于 8 月前

2020年是时候更新你的技术武器库了:Asgi vs Wsgi(FastAPI vs Flask)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_167也许这一篇的标题有那么一点不厚道,因为Asgi(Asynchronous Server Gateway Interface)毕竟是Wsgi(Web Server Gateway Interface)的扩展,而FastAPI毕竟也是站在Flask的肩膀上才有了突飞猛进的发展,大多数人听说Asgi也许是因为Django的最新版(3.0)早已宣布支持Asgi网络规范,这显然是一个振奋人心的消息,2020年,如果你在Web开发面试中不扯一点
原创
344阅读
0评论
0点赞
发布博客于 9 月前

上穷碧落下凡尘:Win10系统下基于Docker配置Elasticsearch7配合Python3进行全文检索交互

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_166基于文档式的全文检索引擎大家都不陌生,之前一篇文章:使用Redisearch实现的全文检索功能服务,曾经使用Rediseach来小试牛刀了一把,文中戏谑的称Rediseach已经替代了Elasticsearch,其实不然,Elasticsearch作为老牌的全文检索引擎还并没有退出历史舞台,依旧占据主流市场,桃花依旧笑春风,阿里也在其ecs服务中推出了云端Elasticsearch引擎,所以本次我们在Win10系统中依托Docker
原创
106阅读
0评论
0点赞
发布博客于 9 月前

利用DockerHub在Centos7.7环境下部署Nginx反向代理Gunicorn+Flask独立架构

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_165上一篇文章:Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像,是在Win10简单玩了一下Docker的镜像打包,属实玩票,娱乐属性较高。要是想真刀真枪的在生产环境部署还得是Centos。本次使用Nginx反向代理Flask服务,为什么要加一层Nginx呢?因为Nginx可以直接处理静态文件请求而不用经过应用服务器,避免占用宝贵的运算资源,并且可以缓存静态资源,使访问静态资源
原创
138阅读
0评论
0点赞
发布博客于 9 月前

Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_164书接上回,之前一篇:Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最新攻略,阐述了如何使用Celery异步推送Websocket消息,现在我们利用Docker将这个完整项目部署起来,为什么用Docker呢?原因很简单,这种容器技术可以将整个项目用单个容器装起来,仅仅只需要维护一个简单的配置文件就告诉电脑每次部署要把什么东西装进容器,甚至把这个过程自动化,部署流程就会变得简单、方
原创
549阅读
0评论
0点赞
发布博客于 9 月前

Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最新攻略

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_163首先得明确一点,和Django一样,在2020年Flask 1.1.1以后的版本都不需要所谓的三方库支持,即Flask-Celery或者Flask-Celery-Help这些库,直接使用Celery原生库即可。一般情况下,Celery被用来处理耗时任务,比如千篇一律的发邮件或者文件上传之类,本次使用Celery实时或者定时发送基于Websocket的消息队列,因为如果前端已经摒弃老旧的轮询策略,使用Websocket,后端则需要相
原创
455阅读
0评论
0点赞
发布博客于 9 月前

让你的简历不落窠臼,精雕细镂写一份真正的技术简历(Python向)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_162孔子云:食不厌精,脍不厌细。字面意思是:粮食越精致越好,肉类切得越细越好,而实际上强调的是做事情要细致、精益求精,孔夫子阐之未尽,写简历同样不厌精亦不厌细,在上一篇文章:秋季招聘季如何制作一款“秀色可餐”的简历?由ShareLatex和Python3打造中,阐述了如何制作一款漂亮的简历模板,但这只是“外在”,一份简历真正灵魂则在于“内涵”,如果内容与模板不匹配,那无异于金玉其外败絮其中,所以吸引招聘者的还得是内容。有道是:模板为王,
原创
432阅读
1评论
1点赞
发布博客于 9 月前

秋季招聘季如何制作一款“秀色可餐”的简历?由ShareLatex和Python3打造

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_161秋招季还有两个月就到了,即所谓的“金九银十”。疫情因素导致市场环境不太理想,所以我们更应该未焚而徙薪,未雨而绸缪,提前做好准备,否则到了时候才临渴掘井、江心补漏那就真的来不及了,而找工作的第一步就是写简历,而写简历的第一步就是选择一块好的简历模板。说起简历模板,大家一定不会陌生,随便在百度搜关键词“简历模板”,林林总总的会出现一大片,但是这些简历模板往往都会有一个共同点,就是太Low、“土味”重、没有时代感、味同嚼蜡,蜡都要顺着嘴
原创
190阅读
0评论
0点赞
发布博客于 9 月前

Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160众神殿内,依次坐着Editplus、Atom、Sublime、Vscode、JetBrains家族、Comodo等等一众编辑器界的大佬们,偌大的殿堂内几无立锥之地,然而在殿内的金漆雕龙宝座上,端坐着一位睥睨众生的王者,那就是被称之为编辑器之神的Vim,作为一个有着30余年历史的老牌神器,没有任何编辑器可以和它媲美,其时江湖有云:神编Vim不会玩,纵称大神也枉然。Vim在 1976 年发布,奉行 Unix 传统的“Do one thi
原创
583阅读
0评论
1点赞
发布博客于 9 月前

当我们谈论算法我们在谈论什么:由疫情核酸检测想到的分治算法(Divide-and-Conquer)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_159北京的疫情一波未平一波又起,由此看来,战“疫”将是一场旷日持久的战争,绝不能掉以轻心、轻易言胜。病毒随时都会死灰复燃,以生命为代价换来的经验教训值得我们每一个人久久深思。笔者所在的小区也开始组织居民批量进行核酸检测,本以为会是一幅摩肩接踵,水泄不通的场景,却出人意料的井然有序、有层有次,效率非常高。原来检疫部门采取了一种特别的策略:每五个人用一组试剂盒,进行快筛,分分钟搞定了几百人的社区检测。这里解释一下病毒核酸检测的原理,检测人
原创
631阅读
0评论
1点赞
发布博客于 9 月前

后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_158在之前的一篇文章中:为美多商城(Django2.0.4)添加基于websocket的实时通信,主动推送,聊天室及客服系统,详细介绍了websocket协议以及结合Django如何实现各种功能,本次我们尝试采用Socket.io这个库和Flask来配合使用,完成一个简易的在线客服聊天系统,看看二者有什么区别。Socket.IO 就是一个封装了 Websocket、基于 Node 的 JavaScript 框架,包含 client 的
原创
790阅读
0评论
1点赞
发布博客于 9 月前

为美多商城(Django2.0.4)添加基于websocket的实时通信,主动推送,聊天室及客服系统

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_67websocket是个啥?webSocket是一种在单个TCP连接上进行全双工通信的协议webSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后
原创
129阅读
0评论
0点赞
发布博客于 9 月前

在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_72一直以来想写一篇完整的在阿里云服务器上部署Django服务结合uwsgi,并且通过nginx做反向代理。因为网上的攻略鱼龙混杂,加上技术不断更新,一些年代久远的文章很容易让人在部署的过程中掉坑里,无法自拔,所以本篇文章以最新的阿里云服务器centos7.6为背景,完全阐述如何部署,亲测可用,其实要说难点完全没有,只要按部就班,就不会有问题。当你购买了阿里云的ecs,涉及ecs的有两个密码,一定要搞清楚,一个密码是远程链接密码,也就是
原创
180阅读
0评论
0点赞
发布博客于 9 月前

Python3+Django2集成PayPal(贝宝)跨境支付三方接口以及订单查询和退款业务

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_157如果您所在的公司涉及外贸或者跨境支付业务,那一定听说过大名鼎鼎的PayPal,总的来说,PayPal在跨国贸易里的优势还是比较大的,作为一种外贸支付方式,目前在国际贸易支付服务中倍受亿万用户追捧,是全球商户和消费者最受欢迎的电子支付方式之一,在跨境交易中有着超过90%的卖家和超过85%的买家认可并正在使用PayPal电子支付业务。当然,PayPal国际业务体量如此惊人,肯定不是毫无原因的。PayPal支付的优势就是其业务网络遍布全
原创
342阅读
0评论
0点赞
发布博客于 9 月前

Win10系统下搭建Go lang开发环境更换国内源并且体验宇宙最快框架Iris

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_156最近有同学开始尝试接触Go lang,拥抱新技术永远都会是一个好习惯,之前的一篇文章介绍了如何在Mac os系统下配置Go lang开发环境,这次我们在Win10系统下进行配置,并且更换国内的安装源,最后再和“全宇宙最快的web框架”–Iris亲密接触一下,对于Iris可能很多朋友并不熟悉,一般Go lang在web开发领域相对著名的框架比如Beego或者Gin都名声在外,这里推荐Iris的原因也并不是因为它源于古希腊女神(彩虹女神
原创
1096阅读
0评论
0点赞
发布博客于 10 月前

说起分布式自增ID只知道UUID?SnowFlake(雪花)算法了解一下(Python3.0实现)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_155但凡说起分布式系统,我们肯定会对一些海量级的业务进行分拆,比如:用户表,订单表。因为数据量巨大一张表完全无法支撑,就会对其进行分库分表。但是一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,当我们使用mysql的自增长主键(auto_increment)时,充分感受到了它的好处:整个系统ID唯一,ID是数字类型,而且是趋势递增的,ID简短,查询效率快,在分布式系统中显然由于单点问题无法使用mysql自增长了,此时需要
原创
505阅读
0评论
0点赞
发布博客于 10 月前

云存储?不依赖三方服务自己也可以搞,利用Docker来搭建分布式文件系统FastDfs

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_78对于文件存储来说,一般情况下简单的处理就是在Django配置文件中配置存储目录,按照规则对文件进行上传或者下载。实际上,当文件较少的时候,Django是可以应付的过来的。但当文件以海量形式出现的时候,Django就并不是那么好用了,于是Fast DFS应运而出。FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件
原创
184阅读
0评论
0点赞
发布博客于 10 月前

利用基于Go Lang的Hugo配合nginx来打造属于自己的纯静态博客系统

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_81Go lang无疑是目前的当红炸子鸡,极大地提高了后端编程的效率,同时有着极高的性能。借助Go语言我们 可以用同步的方式写出高并发的服务端软件,同时,Go语言也是云原生第一语言,Docker,Kubernetes等等著名的项目都是使用Go语言实现的。Hugo 是基于 Go 语言的静态网站生成器。什么是静态网站生成器?顾名思义,就是以最快的速度生成一个高可用的web页面,我们知道Django作为一款非常流行的框架被广泛应用,但是部署
原创
304阅读
0评论
0点赞
发布博客于 10 月前

使用基于Vue.js和Hbuilder的混合模式移动开发打造属于自己的移动App

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_82近几年,混合模式移动应用的概念甚嚣尘上,受到了一些中小型企业的青睐,究其原因,混合模式开发可以比传统移动开发节约大量的开发成本和人力成本。Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。说白了,如果走传统移动开发路线,公司业务覆盖多端,那么每个平台势必要请一个专属开发人员,安卓要请一个前端
原创
10618阅读
0评论
1点赞
发布博客于 10 月前

Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_152短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口。首先,注册Twilio: https://www.twilio.com/注册成功后,获取ACCOUNT SID和AUTH TOKEN,一会要用到安装依赖的库pip3 install twilio随后编写发送脚本#导包 导入客户端 from twilio.
原创
691阅读
1评论
0点赞
发布博客于 10 月前

Win10系统下使用Django2.0.4+Celery4.4.2+Redis来实现异步任务队列以及定时(周期)任务(2020年最新攻略)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_153首先明确一点,celery4.1+的官方文档已经详细说明,该版本之后不需要引入依赖 django-celery 这个库了,直接用 celery 本身就可以了,就在去年年初的一篇文章python3.7.2+Django2.0.4 使用django-celery遇到的那些坑,中提到的一些bug,在今年早已不复存在,所以技术更新频率越来越快,本文详细阐述用新版Celery(4.4.2)来实现。关于celery的底层原理这里就不赘述了,简
原创
254阅读
0评论
0点赞
发布博客于 10 月前

如何应对外包公司(文思海辉)的Python后端面试

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_151最近春招如火如荼,我接触到的几位同学也纷纷去市场里试了试水,不得不说由于疫情的影响,导致目前中等水平的开发者择业有了些许困难,毕竟不是所有人都能去一二线的大厂,有的时候海浪过大,我们不得不收起风帆,卧薪尝胆,入港蛰伏,所以我们可以把目光投向一些相对要求不是特别高的岗位,比如外包岗,当然了业内其实对外包公司有一些偏见,评价不高。客观的说,外包公司确实有一些不尽如人意的地方,但是其实也有一些好处不能忽略:比如接触的项目多,接触的人多,积
原创
496阅读
2评论
0点赞
发布博客于 10 月前

在阿里云Centos7.6上面部署基于Redis的分布式爬虫Scrapy-Redis

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_83Scrapy是一个比较好用的Python爬虫框架,你只需要编写几个组件就可以实现网页数据的爬取。但是当我们要爬取的页面非常多的时候,单个服务器的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来。而Scrapy-Redis则是一个基于Redis的Scrapy分布式组件。它利用Redis对用于爬取的请求(Requests)进行存储和调度(Schedule),并对爬取产生的项目(ite
原创
128阅读
0评论
0点赞
发布博客于 10 月前

在阿里云Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_84一般情况下,将一个项目部署到生产环境的流程如下:需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚。整个过程相当复杂而漫长,其中还需要输入不少的命令,比如上传代码,git的拉取或者合并分支等等。Jenkins是目前非常流行的一款持续集成工具,可以帮助大家把更新后的代码自动部署到服务器上运行,整个流程非常自动化,你可以理解为部署命令操作的可视化界面。
原创
160阅读
0评论
0点赞
发布博客于 10 月前

在阿里云Centos7.6上面配置Mysql主从数据库(master/slave),实现读写分离

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_85在之前的一篇文章中,阐述了如何在高并发高负载的场景下使用nginx做后台服务的负载均衡:在阿里云Centos上配置nginx+uwsgi+负载均衡配置,但是不要以为这样做了就是一劳永逸的,到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器负载,如此多的数据库连接操作,数据库必然会崩溃,数据库如果宕机的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,一方面采用优秀的代码框架,进行代码的优化,采用优
原创
135阅读
0评论
0点赞
发布博客于 10 月前

全方位360度无死角谈谈如何优化前端性能的总结

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_86前端是庞杂的,包括 HTML、 CSS、 Javascript、Image 、Video等等各种各样的资源。前端优化是复杂的,针对方方面面的资源都有不同的方式。那么,前端优化的目的是什么 ?从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的资源。总之,说白了,恰当的优化不仅能够改善站点的用户体验并且能够节
原创
267阅读
1评论
2点赞
发布博客于 10 月前

在Centos7.3下使用Siege对Django服务进行压力测试

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_87Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试。今天我们就使用Siege来对Django进行一次压力测试,看看单台Django服务到底能抗住多少的并发数。首先安装Siegewget http://download.joedog.org/siege/siege-3.0.8.tar.gztar zxvf siege-3.0.8.tar.gz
原创
362阅读
0评论
0点赞
发布博客于 10 月前

在Centos下对高并发web框架Tornado的性能进行测试

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_89在之前的一篇文章中,我们在1g1核的惨淡硬件环境下,对 uwsgi + django 和 gunicorn+ django 的后端服务进行性能测试,得出结论单台django在简单读库操作下只能抗住大约200左右的并发:在Centos下使用Siege对Django服务进行压力测试这一次,我们在相同的背景下,对三大框架中,以性能著称于世的Tornado进行并发测试,看看它的性能到底有多高。Tornado是一个用Python编写的异步H
原创
258阅读
0评论
0点赞
发布博客于 11 月前

Python3的单元测试模块Mock与性能测试模块CProfile

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_92我们知道写完了代码需要自己跑一跑进行测试,一个写好的程序如果连测试都没有就上到生产环境是不敢想象的,这么做的人不是太自信就是太无知。传统测试无非就是自己运行一下程序查看结果,或者前后端服务进行联调,这里要说的是走正规流程的单元测试,那到底什么是单元测试呢?顾名思义,只测试当前单元的程序或者代码,也可以理解当前模块的代码块,单元测试假设所有的内部或外部的依赖应该是稳定的, 已经在别处进行测试过的.使用mock 就可以对外部依赖组件实现
原创
362阅读
0评论
0点赞
发布博客于 11 月前

使用Hexo建立一个轻量、简易、高逼格的博客

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_93在之前的一篇文章中,介绍了如何使用Hugo在三分钟之内建立一个简单的个人博客系统,它是基于go lang的,其实,市面上还有一款类似的静态页生成器,就是Hexo 读音/hækso/ ,它是基于node.js的,和Hugo一样,Hexo 正常来说,不需要部署到我们的服务器上,我们的服务器上保存的,其实是基于在hexo通过markdown编写的文章,然后hexo帮我们生成静态的html页面,然后,将生成的html上传到我们的服务器。简而言
原创
160阅读
0评论
0点赞
发布博客于 11 月前

彻底弄清楚session,cookie,sessionStorage,localStorage的区别及应用场景(面试向)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_94客户端状态保持是一个老生常谈的问题了,归根结底追踪浏览器的用户身份及其相关数据无非就是以下四种方式:session,cookie,sessionStorage,localStorage首先cookie和session:Cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,
原创
180阅读
0评论
0点赞
发布博客于 1 年前

搞清楚系统到底怎样支撑高并发以及架构图的绘制(面试向)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_95大多数人面试的时候经常会被问到:你简历上有高负载高并发的经验,那到底你的系统是怎样设计的?如果没有过相关的项目经验,大多数同学被问到这个问题压根儿没什么思路去回答,不知道从什么地方说起,其实,就算没有相关的经验,只要事先编好话术,搞清楚架构图,回答此类问题也还是可以滴水不漏的。首先,在脑子里虚拟一个大用户量背景下的场景,如果我们手头有几台4核8g的服务器,假设一个平台用户量是500万。此时日活用户是50万,日访问量在600-700
原创
237阅读
0评论
0点赞
发布博客于 1 年前

使用Python3将word文档和pdf电子书进行格式互转(兼容Windows/Linux)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_96一些重要文档格式之间的互转在目前显得尤为重要,pdf作为通用格式在现在各个平台上兼容性是最好的,所以写python脚本将这些word文档批量转换pdf是最好的解决方案。由于windows系统对于word文档有天然的兼容性优势,所以转换起来很简单,普遍上是通过comtypes模块。pip3 install comtypesfrom comtypes.client import CreateObjectimport osde
原创
578阅读
0评论
0点赞
发布博客于 1 年前

Python花式读取大文件(10g/50g/1t)遇到的性能问题(面试向)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_97最近无论是面试还是笔试,有一个高频问题始终阴魂不散,那就是给一个大文件,至少超过10g,在内存有限的情况下(低于2g),该以什么姿势读它?所有人都知道,用python读文件有一套”标准流程“:def retrun_count(fname): """计算文件有多少行 """ count = 0 with open(fname) as file: for line in file:
原创
532阅读
0评论
0点赞
发布博客于 1 年前

用户认证(Authentication)进化之路:由Basic Auth到Oauth2再到jwt

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_98用户认证是一个在web开发中亘古不变的话题,因为无论是什么系统,什么架构,什么平台,安全性是一个永远也绕不开的问题在HTTP中,基本认证(Basic access authentication)是一种用来允许网页浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。虽然基本认证非常容易实现,但该方案创建在以下的假设的基础上,即:客户端和服务器主机之间的连接是安全可信的。特别是,如果没有使用SSL/TLS(
原创
784阅读
0评论
0点赞
发布博客于 1 年前

Python3.7+Tornado5.1.1+Celery3.1+Rabbitmq3.7.16实现异步队列任务

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_99在之前的一篇文章中提到了用Django+Celery+Redis实现了异步任务队列,只不过消息中间件使用了redis,redis作为消息中间件可谓是差强人意,功能和性能上都不如Rabbitmq,所以本次使用tornado框架结合celery,同时消息中间件使用Rabbitmq来实现异步发邮件,并且使用flower来监控任务队列。首先安装rabbitmqMac os直接运行brew命令安装#安装服务brew install ra
原创
370阅读
0评论
1点赞
发布博客于 1 年前

利用基于Python的Pelican打造一个自己的个人纯静态网站

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_100其实呢这么多年以来我一直建议每个有技术追求的开发者都要有写技术博客记笔记的良好习惯,一来可以积累知识,二来可以帮助别人,三来可以把开发中遇到的问题记录用来自省,第四可以通过交换友链来结识更多的技术领域的同仁。之前我曾经写过两篇相似的文章用来快速搭建个人网站,一款基于go lang:利用基于Go Lang的Hugo配合ng...
原创
208阅读
0评论
0点赞
发布博客于 1 年前

在centos7.6上部署前后端分离项目Nginx反向代理vue.js2.6+Tornado5.1.1,使用supervisor统一管理服务

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_102这一次使用vue.js+tornado的组合来部署前后端分离的web项目,vue.js不用说了,前端当红炸子鸡,泛用性非常广,无论是单页应用,还是混合式开发app,亦或是微信小程序开发,样样得心应手,tornado最近的风头有点被新锐框架sanic抢走了,但是作为老牌的异步非阻塞框架,其内置了支持epoll/kqueue ...
原创
194阅读
0评论
0点赞
发布博客于 1 年前

流量如何才能变现?实际测试谷歌广告联盟(Google Adsense)的广告效果以及如何优化相关代码

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_1502010年,谷歌正式退出中国市场,无数人扼腕叹息,如今十年过去了,谷歌还有两条重要的业务线并没有完全退出,一个是页面统计业务(Google Analytics),另外一个则是谷歌广告联盟(Google Adsense),说起广告联盟,玩儿过网站的朋友应该并不陌生,对于中小型站长、博主来说,要想通过网站的流量取得一些收入,除...
原创
817阅读
0评论
0点赞
发布博客于 1 年前

基于mpvue的框架开发微信小程序(搭建环境)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_103美团很早就开源了mpvue这个项目,如此看来,美团可不仅仅是一家团购网站,真正的技术驱动型企业,使得我们多了一种用来开发微信小程序的框架选项。由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一致的(某些功能由于受限于小程序环境本身的原因而不能使用,但是瑕不掩...
原创
403阅读
0评论
0点赞
发布博客于 1 年前

0202年,您真的需要Thrift这样一个RPC微服务框架来拯救一下传统HTTP接口(api)了

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_104目前市面上类似Django的drf框架基于json的http接口解决方案大行其道,人们也热衷于在接口不多、系统与系统交互较少的情况下使用它,http接口的优点就是简单、直接、开发方便,门槛低,利用现成的http协议进行传输。但是事情往往有两面,如果是一个大型的网站,内部子系统较多、接口非常多的情况下,RPC框架的好处就显...
原创
250阅读
0评论
0点赞
发布博客于 1 年前

使用Python3.7结合Redisearch代替ElasticSearch实现的全文检索功能服务

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_105“检索”是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并发的时候,业界常用 elasticsearch 和 lucene 等方案,但是elasticsearch对运行时内存有着最低限额,其运行时大小推荐 2G 以上的内存空间,并且需要额外的磁盘空间做持久化存储。...
原创
534阅读
0评论
0点赞
发布博客于 1 年前

关于Tornado5.1:到底是真实的异步和还是虚假的异步

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_107我们知道Tornado 优秀的大并发处理能力得益于它的 web server 从底层开始就自己实现了一整套基于 epoll 的单线程异步架构,其他 web 框架比如Django或者Flask的自带 server 基本是基于 wsgi 写的简单服务器,并没有自己实现底层结构。而tornado.ioloop 就是 tornad...
原创
342阅读
0评论
0点赞
发布博客于 1 年前

Docker容器保姆:在centos7.6上利用docker-compose统一管理容器和服务

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_108众所周知,一个大型的Docker容器组成的微服务应用中,容器的数量是非常巨大的,如果依赖传统的人工配置方式进行维护,对于开发和运维来说简直就是噩梦。docker-compose的出现正是为了解决这个问题。docker-compose是一个用于定义和运行多容器Docker应用的工具,只需要一个Compose的配置文件和一个...
原创
141阅读
0评论
0点赞
发布博客于 1 年前

使用flex弹性布局代替传统浮动布局来为微信小程序写自适应页面

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_109我们知道,写习惯了前端的人,一般切图后布局页面的话,上手最习惯的是基于盒子模型的浮动布局,依赖 display 属性 + position属性 + float属性,但是浮动布局有一些致命的小问题,比如垂直居中比较费劲,比如著名的float坍塌问题,另外有些极端情况下,还得使用模型+clear:both来手动清除浮动,比较麻...
原创
330阅读
0评论
0点赞
发布博客于 1 年前

基于Docker-compose搭建Redis高可用集群-哨兵模式(Redis-Sentinel)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_110我们知道,Redis的集群方案大致有三种:1)redis cluster集群方案;2)master/slave主从方案;3)哨兵模式来进行主从替换以及故障恢复。sentinel系统可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的...
原创
1366阅读
0评论
1点赞
发布博客于 1 年前

基于python3.7利用Motor来异步读写Mongodb提高效率

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_111如果使用Python做大型海量数据批量任务时,并且backend用mongodb做数据储存时,常常面临大量读写数据库的情况。尤其是大量更新任务,由于不能批量操作,我们知道pymongo是同步任务机制,相当耗时。如果采用多线程、多进程的方案确实有效,但编写麻烦、消耗系统资源大(pymongo还不允许fork线程中共用连接)...
原创
492阅读
0评论
0点赞
发布博客于 1 年前

win10系统下把玩折腾DockerToolBox以及更换国内镜像源(各种神坑)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_1492020年,这年头如果出去面试和面试官不聊几句Docker,都不好意思说自己是搞开发的。之前玩儿Docker都是在Mac系统里,没碰到过什么大问题,不过Docker这种容器技术本身就对Unix内核的系统天生友好,毕竟人家身体里流淌着linux的纯血基因,但是Docker对于Windows系统就显得不那么平易近人了,对待wi...
原创
906阅读
0评论
3点赞
发布博客于 1 年前

Mpvue1.0+Python3.7+Django2.0.4实现微信小程序的支付功能

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_112其实微信支付有很多种形式,刷脸,扫码,APP支付,小程序支付等,这边只说明小程序支付的实现,不过原理上都大同小异。首先,需要注册微信公众号平台https://mp.weixin.qq.com,并且开通微信支付功能,随后将你的小程序关联一个微信商户:pay.weixin.qq.com,这一系列申请下来之后,你手中需要有微信...
原创
290阅读
0评论
0点赞
发布博客于 1 年前

Python3的原生协程(Async/Await)和Tornado异步非阻塞

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_113我们知道在程序在执行 IO 密集型任务的时候,程序会因为等待 IO 而阻塞,而协程作为一种用户态的轻量级线程,可以帮我们解决这个问题。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存,在调度回来的时候,恢复先前保存的寄存器上下文和栈。因此协程能保留上一次调用时的状态,即所有局部状态的一个特定组合说人...
原创
954阅读
0评论
0点赞
发布博客于 1 年前

利用CSS3自定义属性来为网站添加“暗黑模式”(暗色模式/DarkMode)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_114究竟什么是暗黑模式?这个概念起初来源于macOS系统,该系统的mojave版本为用户提供两个主题皮肤,即浅色和深色的皮肤。自从有了这个概念之后,很多网站和系统都会用户提供了相应的两套肤色,便于用户根据自己的习惯或爱好进行切换从科学的角度讲,低对比度的暗色可以降低屏幕对视网膜的刺激,同时还可以让电子设备更加省电。在过往...
原创
1095阅读
0评论
0点赞
发布博客于 1 年前

使用Docker-compose来封装celery4.1+rabbitmq3.7服务,实现微服务架构

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_115大家都知道,Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,在之前的一篇文章中:python3.7+Tornado5.1.1+Celery3.1+Rabbitmq3.7.16实现异步队列任务详细阐述了如何进行安装部署和使用,但是过程太繁琐了,先得安装Erlang,再安装rabbitmq,然后各种配置,最后由...
原创
266阅读
0评论
0点赞
发布博客于 1 年前

使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_116之前的一篇文章详细阐述了微信小程序开发的准备和入门以及环境搭建,这一次我们介绍如何将微信小程序如何上线,同时配合weui美化界面。本次做的微信小程序项目是一个类似在线题库的功能,面试者可以通过小程序来检索笔试题,同时用户输入关键词时同步监听输入行为,不需要点击就可以获取知识要点,后台采用tornado+mongodb+m...
原创
236阅读
0评论
0点赞
发布博客于 1 年前

Python3.7将普通图片(png)转换为SVG图片格式并且让你的网站Logo(图标)从此”动”起来

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_148在之前的几篇文章中,介绍了业界中比较火爆的图片技术SVG(Scalable Vector Graphics),比如Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript来打造属于自己的个性化社交分享系统,我们可以使用svg来打造精美炫酷的分享小图标(icon),这一次我们使用python来...
原创
1694阅读
10评论
2点赞
发布博客于 1 年前

利用Docker挂载Nginx-rtmp(服务器直播流分发)+FFmpeg(推流)+Vue.js结合Video.js(播放器流播放)来实现实时网络直播

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_75众所周知,在视频直播领域,有不同的商家提供各种的商业解决方案,其中比较靠谱的服务商有阿里云直播,腾讯云直播,以及又拍云和网易云的有偿直播服务,服务包括软硬件设备,摄像机,编码器,流媒体服务器等。但是其高昂的费用以及较高的准入门槛让许多个人和小型企业望而却步,本文要讲解的是如何使用nginx-rtmp搭建直播服务器,配合FFm...
原创
578阅读
0评论
3点赞
发布博客于 1 年前

基于阿里云直播实现视频推流(ffmpeg)/拉流(Django2.0)以及在线视频直播播放(支持http/https)功能

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_146由于5g网络的光速推广,视频业务又被推上了风口浪尖,在2019年初我们还在谈论照片,短视频等关键字,而进入2020年,我们津津乐道的就只有视频,视频,还是视频,普通人拿起手机做直播早已不是奢望,去年我曾经写了一篇文章:利用Docker挂载Nginx-rtmp(服务器直播流分发)+FFmpeg(推流)+Vue.js结合Vid...
原创
2294阅读
0评论
0点赞
发布博客于 1 年前

使用Docker-compose搭建nginx-keepalived双机热备来实现高可用nginx集群

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_117最近同学出去面试经常会被问到一个问题。面试官:你说你们公司使用nginx反向代理tornado,部署了多少多少台机器,好像很牛逼的样子,但是我问你,如果主机也就是部署了nginx那台机器并发过大导致宕机了怎么办?答曰:不考虑带宽峰值的话,比较新的 CPU 跑 nginx 单核每秒能接近 2 万请求,而且nginx如果纯...
原创
1142阅读
1评论
2点赞
发布博客于 1 年前

在Mac Os(苹果)上用手机抓包软件Charles抓取微信小程序中的高清无水印视频

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_118手机抓包是一名测试工程师常备的技能,比如我想查看一个接口请求的参数、返回值,还有移动设备上的http请求、https请求,这一次的背景是我们想要在app端和小程序端抓取一些视频,这里用腾讯视频作为例子,使用mac系统的Charles软件(有点类似win系统中的fiddler,使用方式上大同小异)来进行视频接口与地址的抓包和...
原创
1501阅读
0评论
0点赞
发布博客于 1 年前

关于微信小程序生产环境体验版获取不到openId的问题(大坑)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_119我们知道openid是微信用户验证的重要标识,支付功能严重依赖这个东西,之前我们做微信支付的时候是通过在微信客户端直接调用官方接口,通过传code参数来调用,下面这样getOpenId(){ //获取用户的openid let _this=this; wx.login({ ...
原创
2598阅读
3评论
2点赞
发布博客于 1 年前

在半小时内从无到有开发并调试一款Chrome扩展(Chrome插件/谷歌浏览器插件)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_120就在不久之前,我们目前这个毕业班的班长那日同学和我说,他正在公司开发Chrome扩展,看起来很高大上的技术,实际开发却非常简单,这引起了我非常浓厚的兴趣,正所谓技不压身,检验自身技术的手段之一就是拥抱新事物,这一次我们尝试在半小时内开发一款Chrome扩展,因为之前我们做了一个微信小程序的在线面试题题库的项目,所以正好利用...
原创
380阅读
0评论
0点赞
发布博客于 1 年前

尝试开发微信公众号消息推送功能并且和小程序关联

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_121之前写了几篇关于微信小程序的开发实践,总的来说没啥难度,感兴趣的请移步:使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境,这一次我们来尝试开发一下微信公众号,那么公众号和小程序到底有什么区别呢?首先定位不同公众号服务于营销与信息传递,小程序面向产品与服务。公众号主要用于信息的传递实现人与信息的连接...
原创
1534阅读
2评论
0点赞
发布博客于 1 年前

为你的网站加上live2d的动态小挂件,博君一晒

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_122喜欢二次元的朋友一定对大名鼎鼎的live2d技术并不陌生,live2D是一种应用于电子游戏的绘图渲染技术,技术由日本Cybernoids公司开发,通过一系列的连续图像和人物建模来生成一种类似三维模型的二维图像。可以看到本站右下角出现了一只可爱的小喵可以看到这只猫会跟着你的鼠标运动,有着伪3D的感觉,这种技术的核心就是...
原创
380阅读
0评论
0点赞
发布博客于 1 年前

使用Python3.7+Tornado5.1配合七牛云存储api来异步切分上传文件

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_123之前写了几篇关于FastDfs分布式存储的文章:python3.7.3操作FastDfs来进行文件操作,其实市面上关于云存储的第三方服务比比皆是,最著名的无疑就是七牛云存储,本次我们将演示用tornado配合七牛云来进行文件的云存储操作。在做七牛云的文件上传时,很多人有一个误区,就是以为是前端先上传到后台服务器,然后后台...
原创
125阅读
0评论
0点赞
发布博客于 1 年前

使用Django2.0.4集成钉钉第三方扫码登录

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_124钉钉作为阿里旗下的一款免费移动通讯软件,受众群体越来越多,这里我们使用Django来集成一下钉钉的三方账号登录,首先注册钉钉开发平台:https://open-dev.dingtalk.com/在移动应用中选择登录创建一个网站应用,其中有用的信息是appid,appsecret,还有回调网址随后,查看官方文档,查...
原创
309阅读
0评论
0点赞
发布博客于 1 年前

基于Vue.js2.6结合h5来实现视频播放画中画技术(Picture-in-Picture)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_125在开发基于vue.js的在线视频教育平台的时候,我们会注意一个小问题,就是如果用户在观看播放视频的同时,也会往下拖动窗口浏览一些评论,这样视频就会被滚动条覆盖,导致用户无法在浏览评论的同时观看视频,同理,如果想边刷微博边追剧怎么办?想边聊微信边看球赛怎么办?目前我们可以用h5的技术来解决这个问题,支持HTML5 播放时候...
原创
1576阅读
0评论
0点赞
发布博客于 1 年前

Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript来打造属于自己的个性化社交分享系统

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_143每一个应用程序,其实都会有分享的需求,比如一键分享一篇文章或者一些活动到微博或者微信亦或者是twitter等社交平台,因为人类是社交动物,而社交分享能够满足马斯洛需求金字塔情感和归属的需求以及受尊重的需求。另外网页的社交分享功能不仅可以满足阅读者,同时,对于网络应用本身,也可以相应的增加该网站的外部链接,比如微博豆瓣等线上...
原创
303阅读
0评论
0点赞
发布博客于 1 年前

使用python3.7和opencv4.1来实现人脸识别和人脸特征比对以及模型训练

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_126OpenCV4.1已经发布将近一年了,其人脸识别速度和性能有了一定的提高,这里我们使用opencv来做一个实时活体面部识别的demo首先安装一些依赖的库pip install opencv-pythonpip install opencv-contrib-pythonpip install numpypip in...
原创
1433阅读
2评论
5点赞
发布博客于 1 年前

简短截说阐述redis中事务的使用

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_127我们知道,在关系型数据库中,比如mysql,如果要使用事务,首先向数据库服务器发送 BEGIN ,然后执行各个相互一致的写操作和读操作,最后,用户可以选择发送 COMMIT 来确认之前所做的修改,或者发送 ROLLBACK 来放弃那些修改。同样, Redis 中也有简单的方法处理一连串相互一致的读操作和写操作。首先是以 ...
原创
160阅读
0评论
0点赞
发布博客于 1 年前

在Centos7上将Apache(httpd)切换为Nginx的过程记录

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_129近期要上线几个基于tornado+motor的移动端接口服务,众所周知,Apache和tornado天生八字不合,尤其apache对python3尤为的不友好,tornado和nginx才是木石前盟,另外由于apache目前系统占用确实比较高,不光进程数多,httpd竟然占用了200多M,太庞大,决定换为较轻量级,高并发的...
原创
235阅读
0评论
0点赞
发布博客于 1 年前

python3.7爬虫:使用Selenium带Cookie登录并且模拟进行表单上传文件

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_142前文再续,书接上一回,之前一篇文章我们尝试用百度api智能识别在线验证码进行模拟登录:Python3.7爬虫:实时api(百度ai)检测验证码模拟登录(Selenium)页面,这回老板又发话了,编辑利用脚本虽然登录成功了,但是有一些表单还是得手动上传,希望能改造成自动化流程。说实话,没毛病,机器能干的事,就没必要麻烦人了,...
原创
433阅读
0评论
0点赞
发布博客于 1 年前

使用python3.7+Vue.js2.0+Django2.0.4异步前端通过api上传文件到七牛云云端存储

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_130之前一篇文章是通过普通js+tornado来上传七牛云:使用Tornado配合七牛云存储api来异步切分上传文件,本次使用vue+django来进行异步上传,因为毕竟vue.js才是目前的前端的主流。首先注册七牛云:qiniu.com,进入你的七牛云账号,打开秘钥页,记录下你的ak和sk[外链图片转存失败,源站可能有防...
原创
178阅读
0评论
0点赞
发布博客于 1 年前

在win10系统环境下,安装配置sublime 3,构建python和vue.js开发环境(插件)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_131疫情当下,最近一直在用mac下的虚拟机运行win10系统,由于在线人数过多,直播授课的时候使用vscode的时候内存暴涨,于是考虑切换回sublime3,毕竟编辑器要比ide要轻量的多,在此记录一下整个流程。首先下载,sublime3软件安装包:https://www.sublimetext.com/安装好后,安装p...
原创
148阅读
0评论
0点赞
发布博客于 1 年前

Mac os:将Homebrew的下载源换成国内镜像增加下载速度(阿里云镜像)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_135可能所有的mac os系统爱好者都遇到过下面这种倒霉情况,在网络环境不太好的时候,你满怀期待的敲下 brew install 应用名称,静静的等待安装结果时,Homebrew 在 Updating 的地方卡死了,真是令人沮丧,当然了,这不是Homebrew的错,Homebrew 是一款 Mac OS 平台下的软件包管理工具...
原创
519阅读
0评论
1点赞
发布博客于 1 年前

使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_132最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用还得用,虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群...
原创
635阅读
1评论
0点赞
发布博客于 1 年前

使用Python3.7+Django2.0.4配合vue.js2.0的组件递归来实现无限级分类(递归层级结构)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_133所谓的无限极分类是啥?其实简单点说就是一个人类可以繁衍出多个后代,然后一个后代又可以分另外多个后代这样无限繁衍下去(可以想象神奇动物在哪里2里面莱斯特兰奇的家族族谱),就好象linux系统你可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样,随后使用tree命令就可以查看文件夹目...
原创
235阅读
0评论
0点赞
发布博客于 1 年前

Python3.7爬虫:实时api(百度ai)检测验证码模拟登录(Selenium)页面

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_134今天有同学提出了一个需求,老板让自动登录这个页面:https://www.dianxiaomi.com/index.htm,毫无疑问登录页面基本都会有在线验证码,要破解这个验证码当然不是啥难事,诚然可以自己去训练模型,然而大量的训练集测试数据还得自己去打码,说白了,不值当,有现成的接口可以用,何乐而不为,于是我们向万恶的百...
原创
531阅读
0评论
0点赞
发布博客于 1 年前

Python3.7+Django2.0.4配合Mongodb打造高性能高扩展标签云存储方案

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_141书接上回,之前有一篇文章提到了标签云系统的构建:Python3.7+jieba(结巴分词)配合Wordcloud2.js来构造网站标签云(关键词集合),但是这篇只是浅显的说明了一下如何进行切词以及前端如何使用wordcloud2.js进行前端展示,本次主要讨论下标签分词切出来之后,如何进行存储。假设我们目前文章-标签体系...
原创
216阅读
0评论
0点赞
发布博客于 1 年前

使用Python3.7配合协同过滤算法(base on user,基于人)构建一套简单的精准推荐系统(个性化推荐)

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_136时至2020年,个性化推荐可谓风生水起,Youtube,Netflix,甚至于Pornhub,这些在互联网上叱咤风云的流媒体大鳄无一不靠推荐系统吸引流量变现,一些电商系统也纷纷利用精准推荐来获利,比如Amzon和Shopfiy等等,精准推荐用事实告诉我们,流媒体和商品不仅仅以内容的传播,它还能是一种交流沟通的方式。那么如...
原创
291阅读
0评论
1点赞
发布博客于 1 年前