【问题标题】:Passing HTML tags with Python使用 Python 传递 HTML 标签
【发布时间】:2021-02-02 07:09:18
【问题描述】:

我目前正在研究一个涉及 "markdown2" 库的项目,以将 .MD 文件转换为 HTML 标记。几乎一切正常,但是当我在 python 中渲染 HTML 文件并抛出转换的 .MD 文件的内容时,它只显示文字标签。 这是获取 MD 文件并读取它的函数

def get_entry(title):
    try:
        f = default_storage.open(f"entries/{title}.md")
        return f.read().decode("utf-8")
    except FileNotFoundError:
        return None

这是转换MD文件,传递那些HTML标签并渲染HTML文件的函数

def entry(request, title):
    entry = markdown(util.get_entry(title))
    return render(request, "encyclopedia/entry.html", {
        "entry" : entry
    })

这是 HTML 文件

{% extends 'encyclopedia/layout.html' %}

{% block title %}

{% endblock %}


{% block body %}
{{ entry }}
{% endblock %}

在浏览器中,它显示带有转换后的 MD 文件的 HTML 文件,如下所示: enter image description here

¿我如何传递这些 HTML 标签,以便浏览器理解它们是标签而不是字符串?

【问题讨论】:

  • 我修好了。只需输入{{ entry|safe }}
  • 你有markdown文件的例子吗?

标签: python html django markdown


【解决方案1】:

出于安全原因,Django 自动转义 HTML 特殊字符,请参阅autoescape 上的文档。

当您的模板变量包含 HTML 代码时,您需要使用 safe 模板过滤器将其标记为安全,并确保自己过滤了任何危险内容(例如用户输入):

{% block body %}
    {{ entry|safe }}
{% endblock %}

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 2014-05-26
    • 1970-01-01
    • 2020-07-17
    • 2016-04-11
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多