文出处:
Stack Overflow
https://stackoverflow.com/questions/2053258/how-do-i-output-html-in-a-message-in-the-new-django-messages-framework
原文标题:
How do I output HTML in a message in the new Django messages framework?
我正在尝试通过Django的消息框架显示一条信息,这条信息中包含了一些HTML内容。具体来说,我使用ModelAdmin.message_user方法发送消息,这个方法仅仅是对messages()的薄封装:
到目前为止,我尝试了很多方法,但最后都显示转义后的HTML。
上面的这段代码行不通,下面的代码也不行。
base.html模板里的代码非常简单:
所以我不太确定我做错了什么。
非常感谢您的意见或指导,谢谢!
该回答获得最多的59个赞。
另一种选择是使用extra_tags关键字参数,用以表明该信息是安全的。例如:
然后利用模板逻辑来使用safe filter。
何谓转义?就是把html语言的关键字过滤掉。例如,<div>就是html的关键字,如果要在html页面上呈现<div>,其源代码就必须是<div>
Django在默认情况下会自动转义html关键字。如果不想转义可以使用safe filter,还有autoescape tag。
ypora 是一款支持实时预览的 Markdown 文本编辑器。它有 OS X、Windows、Linux 三个平台的版本,目前完全免费。
https://typora.io/#
Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,目前许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。 如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等,甚至还能被使用来撰写电子书。
在使用Dreamweaver编写网页时,遇到需要插入代码块、流程图、数学公式时,总是显得很无力,效率很低,效果不好,使用Typora会让这些问题迎刃而解,且轻便,简单。
直接看一个demo:
导出为html:
html网页源代码:
其可以导出的格式有:
流程图样式包括:
1、标准流程图源码格式(横向):
```flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op
```
2 mermaid语言库绘流程图
Mermaid 是一个用于画流程图、状态图、时序图、甘特图的库,使用 JS 进行本地渲染,广泛集成于许多 Markdown 编辑器中。
Mermaid 作为一个使用 JS 渲染的库,生成的不是一个“图片”,而是一段 HTML 代码,因此安全许多。
官网:https://mermaidjs.github.io/
Github 项目地址:https://github.com/knsv/mermaid
2.1 横向流程图源码格式:
graph LR
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
2.2 竖向流程图源码格式:
sequenceDiagram
Title: 标题:复杂使用
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象B->小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩
2.3 时序图源码复杂样例
gantt
dateFormat YYYY-MM-DD
title 软件开发甘特图
section 设计
需求 :done, des1, 2014-01-06,2014-01-08
原型 :active, des2, 2014-01-09, 3d
UI设计 : des3, after des2, 5d
未来任务 : des4, after des3, 5d
section 开发
学习准备理解需求 :crit, done, 2014-01-06,24h
设计框架 :crit, done, after des2, 2d
开发 :crit, active, 3d
未来任务 :crit, 5d
耍 :2d
section 测试
功能测试 :active, a1, after des3, 3d
压力测试 :after a1 , 20h
测试报告 : 48h
2.4 甘特图样例:
gantt
dateFormat YYYY-MM-DD
title 软件开发甘特图
section 设计
需求 :done, des1, 2014-01-06,2014-01-08
原型 :active, des2, 2014-01-09, 3d
UI设计 : des3, after des2, 5d
未来任务 : des4, after des3, 5d
section 开发
学习准备理解需求 :crit, done, 2014-01-06,24h
设计框架 :crit, done, after des2, 2d
开发 :crit, active, 3d
未来任务 :crit, 5d
耍 :2d
section 测试
功能测试 :active, a1, after des3, 3d
压力测试 :after a1 , 20h
测试报告 : 48h
教程:
Markdown 高级技巧 | 菜鸟教程(使用 Typora 编辑器讲解 Markdown 的语法)
https://www.runoob.com/markdown/md-advance.html
ref
1 Typora 完全使用详解
https://sspai.com/post/54912/
2 用什么软件画流程图好?-悟空问答
https://www.wukong.com/question/6809962012198568195/
3 Mermaid 实用教程
https://blog.csdn.net/fenghuizhidao/article/details/79440583
-End-
一个基于 vue、Echart 框架的大数据可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、内部图表自由替换、Mixins注入等功能。
https://gitee.com/MTrun/big-screen-vue-datav?_from=gitee_search
具体使用请移步https://gitee.com/MTrun/big-screen-vue-datav?_from=gitee_search地址参考。
*请认真填写需求信息,我们会在24小时内与您取得联系。