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

可以从Django中的模板访问settings.py中的常量吗?

甄胡非
2023-03-14
问题内容

我希望通过模板访问settings.py中的一些内容,但是我不知道该怎么做。我已经试过了

{{CONSTANT_NAME}}

但这似乎不起作用。可能吗?


问题答案:

settings.MEDIA_URL如果你使用django的内置通用视图或在render_to_response快捷方式函数中传递上下文实例关键字参数,则Django提供对模板的某些经常使用的设置常量的访问,例如和某些语言设置。这是每种情况的示例:

from django.shortcuts import render_to_response
from django.template import RequestContext
from django.views.generic.simple import direct_to_template

def my_generic_view(request, template='my_template.html'):
    return direct_to_template(request, template)

def more_custom_view(request, template='my_template.html'):
    return render_to_response(template, {}, context_instance=RequestContext(request))

这些视图都将具有几个常用设置,例如settings.MEDIA_URL可用于模板{{ MEDIA_URL }}等。

如果要在设置中寻找对其他常量的访问权限,则只需解压缩所需的常量并将它们添加到在视图函数中使用的上下文字典中,如下所示:

from django.conf import settings
from django.shortcuts import render_to_response

def my_view_function(request, template='my_template.html'):
    context = {'favorite_color': settings.FAVORITE_COLOR}
    return render_to_response(template, context)

现在,你可以通过访问settings.FAVORITE_COLOR模板{{ favorite_color }}



 类似资料:
  • 问题内容: 如果我在Django中设置会话变量,例如: 有什么方法可以从模板中访问它,还是必须从视图中检索它,然后将其传递给模板? 询问是因为我想在模板中访问大约10个小会话变量,然后将所有10个从视图传递到模板可能会有些混乱。 (我必须使用会话变量,因为它是HttpResponseRedirect,但是出于我的目的,将变量存储在数据库中是过大的。) 那么-有什么方法可以直接在模板中获取会话变量?

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

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

  • 问题内容: 我正在将字典从我的视图传递到模板。因此可以传入并循环遍历键,值对,但我还没有找到一种从特定键直接在视图中直接访问的优雅解决方案,例如bu json.items [“ key1”]。我可以使用一些if / then语句,但是我宁愿直接这样做也可以吗? 这是html模板中的循环代码: 问题答案: Django模板语言支持按以下方式查找字典键: 请参阅有关变量和查找的模板文档。 模板语言未提

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

  • 问题内容: 我正在将数组传递给我的Django模板。我要访问的阵列中的阵列的各个元素(例如)等等,而不是通过整个阵列循环。 有没有办法在Django模板中做到这一点? 问题答案: 请记住,Django模板中的点符号用于Python中的四种不同符号。在模板中,可以表示以下任何一项: 它按此顺序尝试它们,直到找到匹配项。因此,你将获得列表索引,因为你的对象不是以3为键的dict,没有名为3的属性,也没