© 2014 - 2019 madliar.com | madliar freamwork powered.
在IT服务当中,数据库主键一般有两种选择,分别为uuid和自增两种形式。
自增主键性能高,占用空间少,但在重要业务当中不适合暴露给外部,因为值是连续的,很容易通过猜测和暴力枚举来破解真实业务情况,甚至带来安全性问题。
uuid则一般为随机字符串,具有一定的业务保密性,但不管是性能还是存储占用,都相对差点意思。MySQL中innodb存储引擎的主键是聚簇索引,会把相邻主键的数据安放在相邻的物理存储上。如果主键不是自增,而是随机的,那么频繁的插入会使 innodb 频繁地移动磁盘块,而影响写入性能。
一般来讲,Python的变量是绑定到一个对象的引用,而不是值或副本。要判断对象是否相等,使用“==”来对比他们的值,而用“is”来判断他们是否具有相同的id,主要用在变量和单例值之间比较时。
中间件就是一个介于web框架和业务代码之间处理request或response的中间层执行逻辑,例如记录一个网站请求的IP和pv的组件等。在Django中,最常见的就是CSRF以及错误收集页面等组件,他们都被放置在了MIDDLEWARE_CLASSES配置项里,在每个请求到达后被调用。
南朝宋国谢灵运尝曰:“天下才有一石,曹子建独占八斗,我得一斗,天下共分一斗。” 从此可见谢灵运自命不凡和狂妄自大。说谢灵运恃才傲物,人家倒也是有资本的。谢灵运出生在南朝大族,自幼聪明好学,学识广博。一句“池塘生春草,园柳变鸣禽”让人暇想万千,彰显出了他的儒雅文风,足以俱备显才的资格。也正是他的有才,葬送了他的一切。谢灵运仗着自己有才,走上了政坛,仕途一路顺风,曾官做到过中书侍郎。后南朝刘宋武帝永初元年刘裕取晋立宋国后,把谢灵运官职一降再降,一句话就是对谢灵运的不信任。
Python装饰器应用广泛,在之前的日记里记录了一个高水平的装饰器,用来把类的只接受一个self的成员函数转换为该实例的一个属性并缓存。遗憾的是,这种装饰器如果用于缓存,则推广的场景不多。现在有一种简单办法,能够借助装饰器将普通函数输出也缓存起来。
博主CL,编程爱好者。“madliar”意为“疯子”、“谎言者”,略含贬义,
但它挺适合这个博客的:博文大多只是我个人肤浅的观点,少数粗浅的学习笔记。如果你有任何建议或吐槽,
欢迎请给我发邮件:
i#caoliang.net。
这个博客运行在一个自制的基于Python语言的WSGI后端框架上。如果你感兴趣,肯定会发现这个博客只有一个页面。 所有的文章都存放在一个以64位随机字符串命名的js文件当中,通过JavaScript来处理交互逻辑。这也就意味着只需要加载一次, 就可以在离线的情况下浏览全站的内容。
这样做当然有诸多缺点,然而并不是这个WSGI框架不支持多页面,是因为我觉得一个小小的博客不应该与服务器有太多的交互逻辑。
后端使用了一个类似Django模板系统的组件来处理html模板文件,这里受到mozillazg的启发很大,在此表示感谢。
博客基于markdown语言,使用了Christopher Jeffrey的md转html的js插件,在此声明。
前端的样式主要参照了两个网站,其一是镜尚传媒的官网,
当时其官网尚在筹备当中;其二是码市的博客:
特此声明。