Django 无状态性?
我只是想知道,Django是不是被设计成一个完全无状态的框架?
看起来它是鼓励无状态的设计,并且使用外部存储机制(比如数据库和缓存),但我在想,在我的应用开发过程中,使用manage.py runserver
运行时,是否可以在服务器的内存中存储一些东西。
4 个回答
0
有一个叫做LocMemCache的缓存后端,它会把数据存储在程序内部。你可以用它来处理会话(不过要小心:这个缓存不能跨进程使用,所以你在部署的时候必须用单个进程,因为后续的请求不一定会由同一个进程处理)。全局变量也可以用(如果不想让所有进程的线程共享,可以使用线程局部变量;关于跨进程通信的警告在这里也适用)。
顺便问一下,外部存储有什么问题呢?外部存储可以方便地在不同进程之间共享数据,还提供其他功能(比如缓存的内存限制算法或者和数据库的持久化)。
3
当然这是可能的。不过如果你在写一个网页应用的话,可能不太想这么做,因为这样会有线程方面的问题。