因此,我将 Django rest 框架设置为电子商务网站的后端 API。该网站通过 React 前端显示,该前端不由 django 后端提供服务。
我目前正在从他们的本地开发服务器(分别为http://127.0.0.1:8000和http://127.0.0.1:3000)运行 Django 后端和 React 前端。将来,它们可能会位于不同的域中。
当我在一个视图中设置一个会话并在另一个视图中读取内容时,如果我只输入用于创建和直接读取到我的浏览器的 url(仅用于测试目的),这将起作用。但是当我通过前端访问后端时,会话无法再访问,或者似乎没有存储。会发生的情况是,在尝试访问我在先前视图中设置的数据时收到 KeyError。
我想这与我前段时间阅读过的内容有关,但我发现很难找到有关如何使用它的正确信息。这是否与具有会话 ID 的 cookie 对前端不可用,而只能对后端本身可用有关?
主要问题: 我想知道如何使用上述设置处理会话以保存购物车。
我的后端代码,以防万一有人想知道:
from django.http import HttpResponse
def cart_add(request, product_id, update, quantity):
request.session['one'] = 'created through "cart_add" view'
return HttpResponse("Created a session - cart_add")
def create(request):
request.session['one'] = 'created through "read" view'
return HttpResponse("Created a session - create")
def read(request):
print(request.session['one'])
我删除了一些不必要的代码。
- 使用 ajax 调用 (axios) 从 React 前端调用cart_add 视图。
- 我通过在浏览器中直接输入它们的 url 来调用创建和读取视图。(这一切都是为了测试目的,只是在我开始编写真正的代码之前确保会话正常工作。)