hongweipeng 发布的文章

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万年以后了。