python - 在 Django 中将 Html 作为 text/html 发送
问题描述
我有一个entry.html
看起来像这样的文件:
{% extends 'encyclopedia/layout.html' $}
{% block title %}
{{ title_name }}
{% endblock %}
{% block body %}
{{ content }}
{% endblock %}
我必须阅读一些降价文件(.md),将其转换为 HTML 并将其显示在网页上。有一个util.py
文件使用该util.get_entry(title)
函数返回markdown文件的内容。
这是我的views.py
文件:
from django.shortcuts import render
from django.http import HttpResponse
from . import util
from markdown2 import markdown
...
def entry_page(request, title):
md_text = util.get_entry(title)
if md_text is not None:
html = markdown(md_text)
return render(request, 'encyclopedia/entry.html', {
'title_name': title,
'content': html
})
else:
return HttpResponse('<h1>404 Page Not Found!</h1>')
这里的问题是输出是纯文本的,如下所示:
我想将文本作为 html 而不是纯文本发送。我如何实现这一目标?
解决方案
您可以使用safe
过滤器禁用模板变量的 HTML 转义
{% extends 'encyclopedia/layout.html' $}
{% block title %}
{{ title_name }}
{% endblock %}
{% block body %}
{{ content|safe }}
{% endblock %}
推荐阅读
- android - 收到有关 Android 订阅取消的通知
- c - 下面的求一个数的阶乘的代码在Xcode上进入了一个无限循环。取这个数作为输入后没有显示输出
- spring-boot - 将带有 spring-boot-sleuth 的跟踪信息发送到 Datadog
- spring-security-oauth2 - 带有 Azure AD 的 Spring Cloud Data Flow Server OAuth2
- visual-studio-code - vscode 是否支持远程实例中的 web 体验编辑文件?
- python - 如何在 NumPy 中堆叠不同形状的多个特征?
- c++ - C++ 访问控制不适用于模板化对象
- java - 使用 javax.persistence 查询时,不能在数组运算符上使用 && 或 <@
- swiftui - SwiftUI:用 MapPin 作为按钮替换自定义地图按钮?
- python - 如何在 python 网页抓取中从 html 中获取类