我是Django的新手,我想知道如何为当前用户保存一个类实例,确切地说,我想做的是将我的用户登录到Firebase,然后从Firebase上的数据库中检索数据,并将数据保存到一个本地类上,该类只有在用户注销后才可用,但是我保存这些类实例的所有尝试都使它们成为全局的(因此实际上每个用户都可以访问它们,并将覆盖上一个实例)
我的第一次尝试是在我的应用程序的views.py上,看起来是这样的:
APPMANAGER = FirebaseManager()
def homepage(request: HttpRequest) -> HttpResponse:
APPManager.loadData(request.POST.get("data"))
return HttpResponse("Done")
但是APPMANAGER
将被全局保存(如果服务器重新启动,也将被删除)
我还检查了Django会话(https://docs.djangoproject.com/en/2.2/topics/http/sessions/),这似乎是我想要做的,但它只接受可序列化的数据,我想保存一个自定义类实例,最好的方法是什么
感谢@FelipeFaria的评论,我能够实现我想要的
我使用了Django会话,在我看来,存储在数据库上的缓存是正确的方法,首先,我配置了会话,安装了下面的Django应用程序(实际上它是默认安装的)
设置.py
然后我在另一行中添加了以下内容:
这将配置会话以在数据库上保存缓存,文档中说性能相当不错,但是一个简单的缓存系统是最好的,因为它忽略了持久性(我需要持久性)
之后,我用字典将所需的数据存储在Django提供的request.session字典上(请求是在每个Django视图上发送的HttpRequest),需要时,我创建了一个类的新实例,并运行一个方法从缓存加载所有属性
views.py示例
更好地解释getter、setter、deleter和那些在文档中有更好的解释:https://docs.djangoproject.com/en/2.2/topics/http/sessions/#configuring-sessions
相关问题 更多 >
编程相关推荐