使用 Python 传递 HTML 标签

Passing HTML tags with Python

我目前正在开发一个涉及 "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 %}

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

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

出于安全原因,Django 会自动转义 HTML 特殊字符,请参阅 autoescape.

上的文档

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

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