当前位置:首页>正文

如何django中用redis缓存服务器,求详细教程。 如何对django的model对象缓存

2023-04-28 23:00:18 互联网 未知

如何django中用redis缓存服务器,求详细教程。

django-redis 中文文档
Andrey Antukh, niwi@niwi.be 4.7.0

翻译: RaPoSpectre

1. 介绍

django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件.

1.1 为何要用 django-redis ?
因为:

持续更新
本地化的 redis-py URL 符号连接字符串
可扩展客户端
可扩展解析器
可扩展序列器
默认客户端主/从支持
完善的测试
已在一些项目的生产环境中作为 cache 和 session 使用
支持永不超时设置
原生进入 redis 客户端/连接池支持
高可配置 ( 例如仿真缓存的异常行为 )
默认支持 unix 套接字
支持 Python 2.7, 3.4, 3.5 以及 3.1.2 可用的 django-redis 版本
稳定版本: 4.7.0
稳定版本: 3.8.1.3 我该使用哪个版本
版本号像 3.6, 3.7 … 等的是主要发行版本, 会包含向后不兼容的内容. 跟多信息请在升级前阅读升级日志.

版本号像 3.7.0, 3.7.1… 等的是小更新或者 bug 修复版本, 一般只会包含 bug 修复, 没有功能更新.

1.4 依赖
1.4.1 Django 版本支持
django-redis 3.8.x 支持 django 1.4, 1.5, 1.6, 1.7 (或许会有 1.8)
django-redis 4.4.x 支持 django 1.6, 1.7, 1.8, 1.9 和 1.1.4.2 Redis Server 支持
django-redis 3.x.y 支持 redis-server 2.6.x 或更高
django-redis 4.x.y 支持 redis-server 2.8

如何对django的model对象缓存

直接利用python提供的json包,在django model的定义中增加一个方法toJSON,利用django model 能访问 _meta.fields 得到相关属性而得到,例子如下: class Category(models.Model): autoid = models.AutoField(primary_key=True) email=models.Ch

如何清理django产生的缓存

你是使用多进程的方式启动的吧,应该是部分进程更新了,刷新后会随机使用某个进程执行代码,所以会有旧的和新的同时出现,你重启下django吧。

不过也有另一种可能你做了页面换成,在view上使用了django的cache修饰器,这样的话需要先删除所有服务器上的缓存。

如果解决了您的问题请采纳!
如果未解决请继续追问

django 怎么解决multivaluedictkeyerror

django 里面上传文件默认只处理单个文件上传,批量上传的时候request.FILES 的类型为 MultiValueDict,这种字典类是特殊定义的,要取得list 需要调用 getlist 方法:
[python] view plain copy
files = request.FILES.getlist(file)
for f in files:
dest= open(/temp/ f.name,wb )
for chunk in f.chunks():
dest.write(chunk)
dest.close()