在我的Django restframework项目中,我有缓慢的查询。
许多嵌套的序列化程序导致HTTP请求慢(2-5秒)
因此,我考虑使用Django可以在Memcache server中提供的缓存。
但恐怕我不太明白它的行为。如果客户端每1秒请求相同的查询,突然其中一个对象发生更改,会发生什么情况?用户将获得缓存的结果,还是Django将返回带有特定更改的缓存结果?
发布于 2017-05-19 17:21:11
Django不自动管理缓存的数据。你得自己处理。
有几种方法可以基于整个应用程序逻辑来管理缓存的数据。
https://docs.djangoproject.com/en/1.11/ref/signals/#module-django.db.models.signals
def save(self, *args, **kwargs):
super(MyModel, self).save(*args, **kwargs)
cache.set(str(self.pk), pickle.dumps(self))perform_create、perform_update和perform_delete方法
def perform_update(self, serializer):
obj = serializer.save()
cache.set(str(obj.pk), pickle.dumps(obj))http://www.django-rest-framework.org/api-guide/generic-views/#genericapiview
对于基于api的应用程序,我更喜欢使用通用视图挂钩。
https://stackoverflow.com/questions/44055811
复制相似问题