我尝试重新创建一个博客CRUD应用程序,用户可以通过将文本输入textarea
<form>
来创建帖子。从这里输入作为类型text
存储在Postgresql中供以后使用。我想将该文本字符串解析为HTML。
用户输入将格式化为HTML的字符串。该程序将采用此字符串并将其格式化为原始HTML。
<h2>Title here</h2>
<p>some text here</p>
这里的一些文字
<h2>Title here </h2>
<p>some text here </p>
我已经读过使用像CKEditor和TinyMCE这样的所见即所得的文本编辑器。我甚至使用了CKEditor但是当我将输入保存到数据库中时,它被渲染为字符串而不是我想要的HTML,这是有道理的。我还使用了HTML5lib,html和BeautifulSoup等模块,但它仍然使用单引号呈现为'<h2>Title here</h2><p>some text here</p>'
。所以它仍然是一个字符串。我想逃避第一个和最后一个引号,但不是每个引号之间都是。
基本上我试图在Stackoverflow上重现这个非常文本的编辑器。我将输入存储为Postgresql text
数据类型。我认为在从数据库中检索字符串时将字符串格式化为HTML是最佳的,而不是在存储之前(错误?)。我甚至实现了一个类,如:
class Post():
body = db.Column(db.Text)
def to_html(self, body):
'''format string of chars to HTML. Return HTML'''
# ...
然后在html模板中我可以(我使用Jinja这样做):
{{ Post.to_html(body) }}
我相信我对编码/解码文本和HTML感到困惑。
答案 0 :(得分:1)
你需要了解一下html ...你所拥有的是原始HTML:
<h2>Title here</h2><p>some text here</p>
将其保存在扩展名为.htm的空白文件中,然后使用浏览器打开。浏览器解释原始HTML并为您提供所需的格式化输出。
我建议你在继续项目之前阅读this tutorial。