1

在 MD 编辑器的帮助下,我们以 SO 形式编写问题的方式。我想知道数据是什么以及如何进入服务器以及以何种方式保存然后呈现。我正在输入的文本的生命周期。

我在这里输入文本,在降价。它是如何提交到服务器的,我的意思是如何处理格式,一旦它们被保存,它们是如何呈现给客户端的。你如何在python中做到这一点?什么是最佳实践。

4

1 回答 1

2

您通常所做的是将用户的 Markdown 输入存储为文本,并在需要显示时将其呈现为 HTML。(如果您迫切需要性能,您可以随时缓存它)。
当您需要修改它时,您再次修改 Markdown 输入,而不是 HTML。

要在 python 中进行 Markdown -> HTML 转换,可以使用Markdown库。

您实际上不应该将 HTML 转换回 Markdown(Markdown 在格式方面不如 HTML 丰富,因此您可能会丢失一些格式),但是 python 库html2text恰好输出有效的 Markdown - 您不能保证Markdown 本身将转换为您的初始 HTML!


尽管如此,请记住,在输出客户端提交的数据时,您必须考虑到跨站脚本等安全风险。你可以在这个 Django ticket中看到一个例子。
您可以访问此 security.stackexchange.com 问题了解更多详细信息。

实际上,Python Markdown 库(以及其他)缺乏安全性在django.utils.markupDjango 1.5 中被弃用

于 2012-09-22T17:21:49.713 回答