当前位置: 首页 > 面试题库 >

Django:从模板中访问会话变量?

蔚俊人
2023-03-14
问题内容

如果我在Django中设置会话变量,例如:

request.session["name"] = "name"

有什么方法可以从模板中访问它,还是必须从视图中检索它,然后将其传递给模板?

询问是因为我想在模板中访问大约10个小会话变量,然后将所有10个从视图传递到模板可能会有些混乱。

(我必须使用会话变量,因为它是HttpResponseRedirect,但是出于我的目的,将变量存储在数据库中是过大的。)

那么-有什么方法可以直接在模板中获取会话变量?


问题答案:

你需要添加django.core.context_processors.request到模板上下文处理器。然后,你可以像这样访问它们:

{{ request.session.name }}

如果你使用的是自定义视图,请确保你传递了RequestContext实例。来自文档的示例:

from django.shortcuts import render_to_response
from django.template import RequestContext

def some_view(request):
    # ...
    return render_to_response('my_template.html',
                              my_data_dictionary,
                              context_instance=RequestContext(request))

从我仍然收到此答案的支持来看,人们对它的帮助仍然存在,距最初编写已经三年多了。但是请注意,尽管上面的视图代码仍然有效,但是如今有一种更简单的方法可以执行此操作。render()是与极为相似的功能render_to_response(),但它会RequestContext自动使用,而无需显式传递它:

from django.shortcuts import render

def some_view(request):
    # ...
    return render(request, 'my_template.html', my_data_dictionary)


 类似资料:
  • 问题内容: 我在网上搜索了很多如何从TWIG模板访问全局数组的方法,并发现了以下内容:,但是当我调用它时,它返回一个空字符串。我有一个和打电话时,我收到此错误:。我做错了什么? 问题答案: 引用对象而不是数组。我不认为该数组是可访问的,除非您将其显式传递给每个Twig模板,或者进行扩展使其可用。 Symfony2是面向对象的,因此您应该使用该对象设置会话属性,而不要依赖数组。该对象会将这些东西从您

  • 问题内容: 我想知道是否有一种简单的方法可以从Jade模板中访问Express.js的req或会话变量,而无需通过常规响应传递它。 还是这是唯一的方法? 问题答案: 您需要创建一个Express才能使用。 然后在模板内部,您可以使用或其他任何东西。 注意:Express 3中不推荐使用dynamicHelpers

  • 问题内容: 我的视图代码基本上是这样的: 我想在Django模板中执行的操作是: 我想要这样输出: 但是通过变量名称via对dict的引用实际上不起作用。我怀疑它是在内部而不是在做。有什么办法可以解决此问题? 问题答案: 没有内置的方法可以执行此操作,您需要编写一个简单的模板过滤器才能执行此操作:http : //code.djangoproject.com/ticket/3371

  • 问题内容: 我正在使用Flask 0.7版。我已经将静态内容的路径存储在配置文件中,并使用 我可以在不通过变量的情况下访问模板中的此配置变量吗? 问题答案: flask默认情况下会在模板上下文中传递一些全局变量(这是完整列表),其中之一是,允许你从模板访问应用程序配置。作为字典,可以使用或(该语法用于访问字典项的语法特定于Jinja)进行访问。

  • 问题内容: 我希望通过模板访问中的一些内容,但是我不知道该怎么做。我已经试过了 但这似乎不起作用。可能吗? 问题答案: 如果你使用django的内置通用视图或在快捷方式函数中传递上下文实例关键字参数,则Django提供对模板的某些经常使用的设置常量的访问,例如和某些语言设置。这是每种情况的示例: 这些视图都将具有几个常用设置,例如可用于模板{{ MEDIA_URL }}等。 如果要在设置中寻找对其

  • 是否可以访问模板中的设置变量? 设置: 如何使用,而不在模板中重用,以避免重复的代码,尤其是在其层次结构较深的情况下?