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

我应该何时在Django的模板系统中使用转义和安全?

祁通
2023-03-14
问题内容

如果我有一个供人们发表评论的框,然后以这种方式显示该评论…我应该逃避吗?

{{ c.title }}

问题答案:

实际上,这取决于。Django的模板引擎会自动转义,因此你实际上并不需要转义。

如果你像这样添加模板过滤器“ safe”,{{c.title|safe}}那么你确实需要担心诸如html注入之类的事情,因为“ safe”将字符串标记为字符串,这意味着它不会被转义。

还有一个{%autoescape on%} ... {%endautoescape%}模板标签,如有必要,可以将“ on”更改为“ off”。默认情况下,它处于启用状态,不需要标签。

默认情况下,其他模板引擎可能不会转义,Jinja2是其中之一。



 类似资料:
  • 主要内容:渲染函数,Django模板语言(DTL),过滤器,标签Django能够单独分开 Python 和 HTML,Python代码/变量进入视图和HTML模板。 连接这两个,Django依赖于渲染函数和Django模板语言。 渲染函数 这个函数有三个参数 − 请求− 初始化请求 模板路径 − 这是相对于在项目 settings.py 文件的变量到 TEMPLATE_DIRS 选项的路径。 参数字典 − 字典包含所需的模板中的所有变量。这个变量可以创建或者可

  • 问题内容: Django在其模板中将其视为某些变量。我怎样才能逃避或或使得Django不把它当作变量。 应该打印完全一样。 问题答案: 我相信您正在寻找template标签。 如链接到文档所述, 由于模板系统没有“转义”的概念,因此要显示模板标签中使用的位之一,必须使用标签。 例如: 将显示为:

  • 问题内容: Django 在其模板中将其视为某些变量。我怎样才能逃避或使得Django不把它当作变量。 应该打印完全一样。 问题答案: 相信你正在寻找模板标记。 如链接到文档所述, 由于模板系统没有“转义”的概念,因此要显示模板标签中使用的位之一,必须使用标签。 例如: 将显示为:

  • 在前一章中,你可能已经注意到我们在例子视图中返回文本的方式有点特别。也就是说,HTML被硬性地直接写入 Python 代码之中。 这种处理会导致一些问题: 对页面设计进行的任何改变都必须对 Python 代码进行相应的修改。站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多。 Python 代码编写和 HTML

  • 问题内容: 我想从我的模型中的模板调用一个函数,例如: 当我想从模板中调用它时:假设在渲染时,我将channel_status_list传递为 这是行不通的,我能够调用一个不消耗任何东西的函数,但是如果找到有参数的函数就无法找到该怎么做 问题答案: 你无法使用模板中的参数调用函数。你只能在视图中执行此操作。另外,你可以编写一个自定义模板过滤器,看起来可能像这样: 现在,你可以在模板中执行以下操作:

  • 我正在做一个项目,我需要使用几个DateTime字段,我已经在我的模型中定义了,然后在模板中,我正在使用https://tempusdominus.github.io/bootstrap-4/插件,但是当我提交表单时,有两个问题来吧: 1) :Django说为所有DateTime字段输入有效的日期/时间(2):选择有效选项<代码>[“玉米油”]不是可用选项之一。 以下是我尝试过的: 从: 从: 从