Python Web之路Django(七): 好用的 ContentType


Django提供的ContentType实在是太方便了

起步

在一些诸如“收藏”的业务场景下,用户能够收藏不同种类的记录,收藏文章,商品,评论等。如果仅用一张表来存储用户的收藏情况,那么模型中需要两个属性来分别表示类型和主键:

class Collect(models.Model):
    """
    用户收藏表
    """
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)

    target_table = models.CharField(verbose_name='表名')
    object_id = models.IntegerField(verbose_name='目标表中的主键')

本文介绍的也是这种实现形式,但如果用 django 提供的 ContentType 会方便很多。


我的2019年总结


起步

今年对互联网来说并不容易。大半年的时间里,互联网里的大哥们都忙着裁员。人工智能与大数据的热潮过后,互联网行业走着下坡路。很多当初为了热度入场的人成了待就业人员,我的某个好朋友在2017读研时选择了数据挖掘方面,临近毕业时,市场里算法凉凉了。同时又有互联网裁员大潮,找工作太难了。

之前的盲目扩张,造成企业的体量泡沫过多,互联网发展很快,当资本抽离,泡沫随之而破,我觉得互联网是在渐渐回归正轨。


处理PHP中Session机制导致阻塞问题


有时候造成卡顿的是PHP本身的处理方式

起步

一个页面内发起多个 ajax 请求,发现很卡,估摸着后台阻塞了。阻塞的原因这次定位到了 Session 机制上了。session 存储使用的是默认的文件存储。


数据库自增ID用完了会怎样


起步

对DBA来说这应该是送分题吧。而我是突如其来的想法想测试下的。正常来说程序员是不会关心自增ID用完的情况的。

以 Mysql 为例,它支持的最大的整型是 unsigned bigint ,上限是 2 的 64 次次方。假设每秒记录100万条数据的增长,用完自增ID要58万年以后了。


[转]UTF-8为什么会比UTF-16浪费?


UTF-8的规范到底是怎么来的呢?为什么要这么做呢?

原文地址:https://www.fengerzh.com/utf-8-encoding/

utf-8_mwfabg.png

And the Lord spake, saying, “First shalt thou take out the Holy Pin. Then, shalt thou count to three. No more. No less. Three shalt be the number thou shalt count, and the number of the counting shall be three. Four shalt thou not count, nor either count thou two, excepting that thou then proceed to three. Five is right out. Once the number three, being the third number, be reached, then, lobbest thou thy Holy Hand Grenade of Antioch towards thy foe, who, being naughty in My sight, shall snuff it.” 上帝说:『首先取下栓,然后不多不少数到三。应该数到三,你数到的数字是三。你除了数到三,既不要数到四,也不要数到二,五是数多了。「三」一旦被数到,成为被数到的第三个数字,就高高的向敌人扔出安提拉之神圣手榴弹,阿门。』 —— 巨蟒与圣杯 Monty Python and the Holy Grail (1975)