背景:
环境如题:win + python3 + flask + jinja。
初学python,在做一个博客工具练习flask,sql目前只有入门知识。
目标是想在发布文章的时候,支持markdown。
问题:标题/加粗等都没有问题,但是在插入图片/超链接的时候,拼接的sql语句会被文章(已经被转化为html)中的引号等符号破坏导致报错。
我做的尝试:
xxx.replace(""", "\"").replace("\\", "\"),实测并没有用。
使用HTMLParser的时候,发现依赖的markupbase包没有(pip3 install 提示没找到,豆瓣源)。
想请教的是:
是否需要把网页存到数据库中去?(或者只存markdown文本到数据库,展示的时候再渲染?)假如不应该,有什么好办法么?
假如应该存数据库,有什么办法吧html代码转化成sql安全?比如还有需要替换的字符我没有注意到?或者有现成的库?
可以查看我在相似问题上的回答Flask实现文章编辑界面
Flask
已经有了处理MD的插件,Flask-Pagedown
。不过也可以只使用mardown
这个库。对于两个问题:是否需要把网页存到数据库中去?(或者只存markdown文本到数据库,展示的时候再渲染?)假如不应该,有什么好办法么?
在
Flask
作者写的书《Flask Web开发:基于Python的Web应用开发实战》中,是将HTML和markdown文本都保存在数据库中,浏览的时候直接取HTML,编辑的时候取markdown,将markdown保存到数据库的时候随便解析为HTML也保存假如应该存数据库,有什么办法吧html代码转化成sql安全?比如还有需要替换的字符我没有注意到?或者有现成的库?
如果使用
markdown
库,直接调用:如果使用插件:
数据库里存markdown文本,服务器端在jinja2中实现一个filter, 渲染html显示markdown。我定义的filter如下:
使用: