首页 > 解决方案 > 如何在 Django 视图中存储全局变量

问题描述

Django 视图中,是否可以在视图中创建全局/会话变量并分配一些值(例如,通过 Ajax 调用发送)并在另一个视图中使用它?

我试图实现的场景将类似于:

查看view1获取一些通过 Ajax 调用发送的可变数据:

def view1(request):
    my_global_value = request.GET.get("data1", '')    # Storing data globally

然后,存储的变量在另一个视图view2中使用:

def view2(request):
    my_int_value = my_global_value    # Using the global variable

标签: djangodjango-templatesdjango-viewsglobal-variables

解决方案


您可以使用Django 文档Session

来自 Django 的一些示例:

def post_comment(request, new_comment):
    if request.session.get('has_commented', False):
        return HttpResponse("You've already commented.")
    c = comments.Comment(comment=new_comment)
    c.save()
    request.session['has_commented'] = True
    return HttpResponse('Thanks for your comment!')

编辑 MIDDLEWARE 设置并确保它包含 'django.contrib.sessions.middleware.SessionMiddleware'

request.session.get("key")也可以在任何其他视图中访问。


推荐阅读