并查集
今天给朋友找资料时,无意中翻出了当年写的Kruskal算法的实现代码。说实话现在再看当年自己写的代码,已经看不懂了。其中在判断选边之后会不会形成闭环回路时,用到了并查集,因为当时是现用现学的,所以还是有些生疏,今天又拿出来翻了翻。说真的,这个结构以及算法是真的简洁实用。
今天给朋友找资料时,无意中翻出了当年写的Kruskal算法的实现代码。说实话现在再看当年自己写的代码,已经看不懂了。其中在判断选边之后会不会形成闭环回路时,用到了并查集,因为当时是现用现学的,所以还是有些生疏,今天又拿出来翻了翻。说真的,这个结构以及算法是真的简洁实用。
最近闲得想把flask项目部署到服务器上,参考了官方文档后,最初选择的是Apache的httpd+mod_wsgi。但apache的配置实在是过于繁琐,各种错误频频发生。尽管通过参考一些网上的资料排除了许多故障,但最后的404问题实在不知道怎么解决。之后转战uWSGI+nginx,但最后的nginx error实在是让我束手无策…… httpd和nginx的错误日志里也没有显示什么,项目在开发环境中也没有问题……所以干脆放弃了,改用了Docker。
新的一年从老婆的问候开始
gakki给的照片还是那么高糊
想着给自己博客加个评论功能,奈何主题作者没有给出设置选项,只能自己摸索着配置。
此评论功能采用的是Valine。虽然我更喜欢来必力
最近写大作业需要用到Flask框架,但使用时发现一个致命问题。
起因是我在修改css文件后,重新运行项目,发现前端并没有更改。
原因是在编写前端时,通常会把图片、css、js等文件放在static文件夹下。但这同时也导致了一个问题:在浏览器加载网页时,会留有一份缓存。当重新运行项目,浏览器并没有向后台请求新的样式文件,而是直接加载的缓存。
正常人最初的想法肯定都是把浏览器缓存关掉。但不知为何,我的小chrome不吃这套(摊手。而且把浏览器缓存关掉也不是一个明智的选择。
之后浏览了不少的博客,大多数给出的方法是更改flask的缓存机制,flask配置文件中默认的缓存有效时间是12h。然而直接更改flask设置并不是一个合适的方法。有的博客给出了在项目中的python中的文件中进行此项设置的更改。然而我的小项目也不吃这套(再次摊手。
无奈之下,只能改用最笨的方法:既然浏览器不对后台进行请求,那就让他强行请求就好了。
核心想法是动态更改html中的url,每次请求的url不一样,浏览器便不会加载缓存
于是,在html文件中引入css时,可以采用这种方式:
1 | <link rel="stylesheet" href="{{ url_for('static', filename='assets/css/main.css', v=0.0129)}}" >; |
每次更改样式文件后,手动更改一下或动态生成版本号,这样浏览器发现版本号对不上后就会重新请求一份。
也可采用时间戳的方式。时间戳的好处在于能够避免重复。
例如我加载本地的图片时,可采用以下方式引入时间戳:
1 | path = "static/wordcloud.png?timestamp="+new Date().getTime(); //在图片路径后加入时间戳 |
我承认这个方法很笨,但真的立竿见影
果然,笨方法永远是最好用的。