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