在多个Django Rest Framework API之间共享会话变量数据

时间:2019-03-25 16:50:10

标签: django-rest-framework session-variables

我有两个Django API。我正在其中一个API中设置会话变量,并尝试在另一个API中检索相同的会话变量数据。但是,问题是只能在设置了会话变量的API中读取会话变量数据。

例如:

API 1

@api_view(['GET'])
def api_one(request):
    request.session['d'] = 'data_value'
    request.session.modified = True

API 2

@api_view(['GET'])
def api_two(request):
    print(request.session['d'])
    # The above statement returns KeyError stating that key ['d'] doesn't 
    # exists

因此,在上面的示例中,我将api_one中的request.session ['d']设置为'data_value',并尝试在api_two中检索request.session ['d']的值。但是,这不起作用,因为当我尝试检索request.session ['d']

时出现“ KeyError”

以下是我在settings.py中的配置:

SESSION_COOKIE_HTTPONLY = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_COOKIE_AGE = 86400
SESSION_SAVE_EVERY_REQUEST = True
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"

我可以清楚地注意到Django在数据库方面正在做的事情,因为按预期在django_session表中创建了新的会话条目。

因此,我想知道是否可以在一个API中设置会话变量,并在其他API中使用它们。

谢谢前进。

0 个答案:

没有答案