更改Django代码会使我退出应用程序

时间:2015-06-18 00:41:57

标签: python django memory

我是Django的新手。我写了一个基本的应用程序当我测试它时,我在Python代码中做的每一个小改动都会将我从localhost中记录下来。

当我使用此缓存后端时会发生这种情况:

'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',

但是当我使用这个时却没有:

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

有没有办法可以继续使用locmem而不是退出?

1 个答案:

答案 0 :(得分:2)

我猜你的SESSION_ENGINE setting设置为cache,而你正在使用开发服务器。

如果是这样,那么你所看到的行为就非常有意义。更改Python代码时,开发服务器会自动重新启动,从而丢失内存中的所有数据。由于这包括缓存,其中包括会话信息,您也会丢失,迫使所有人重新登录。

documentation提到了这个:

  

警告

     

如果您正在使用Memcached缓存后端,则应该只使用基于缓存的会话。本地内存缓存后端不会保留足够长的数据以作为一个好的选择。

由于您要保留LocMemCache,因此应使用其他会话后端。一个简单的方法可能是基于cookie的后端,但请查看documentation以查看所有选项。