SHUHARI 的博客

流光飞舞

归档 2019 年 10 月

说透 CSV 格式

CSV 这么简单的格式,需要单独一篇文章来说明吗?其实细节隐藏在魔鬼之中,我们过去的团队在生成 CSV 内容的时候,由于兼容性问题也是吃过苦头的。因此,我觉得还是有必要写一篇文章,从各个方面把这个格式彻底讲透。

本文将介绍:

  • CSV 格式的来源、历史背景和规范化情况;
  • 规范化的 CSV 格式要求与实际支持情况;
  • Python 内置库与第三方库处理 CSV 的接口与细节;
  • 处理 CSV 格式应该注意的常见问题和注意事项。

简单解决大型 Flask 蓝图的路由划分

Flask 框架提供了蓝图(Blueprint)的概念,作为划分大型网站的主要工具。但对于地址较为复杂的网站,仅靠 Blueprint 仍然是不够的。以个人博客为例,如果我们把它规划为个人网站的一个子分区,那么很自然地会设置一个 url_prefix='/blog' 的蓝图。但 blog 下面可能不只是一个简单的平面结构,还会有更多的层次,类似这样:

说说 Flask 中的 Signal

信号(Signal)是 Flask 中一个比较鲜为人知的功能,在官方文档中也对此着墨不多。的确,Signal 并不是 Flask 的核心功能————你完全可以在不使用 Signal 的前提下写出完整的 Flask 应用。但在某些场景下,使用 Signal 有助于避免代码中不必要的耦合,提高可维护性;并且,部分工程化实践,比如针对特定逻辑进行的测试,需要借助 Signal 的帮助才能完成(后面我们会看到一个具体的例子)。因此,本文将帮助你了解什么是 Signal,它的原理、使用方法,以及它在 Flask 中有哪些实际应用。