背景:
环境如题:win + python3 + flask + jinja。
初学python,在做一个博客工具练习flask,sql目前只有入门知识。
目标是想在发布文章的时候,支持markdown。
问题:标题/加粗等都没有问题,但是在插入图片/超链接的时候,拼接的sql语句会被文章(已经被转化为html)中的引号等符号破坏导致报错。
我做的尝试:
xxx.replace(""", "\"").replace("\\", "\"),实测并没有用。
使用HTMLParser的时候,发现依赖的markupbase包没有(pip3 install 提示没找到,豆瓣源)。
想请教的是:
是否需要把网页存到数据库中去?(或者只存markdown文本到数据库,展示的时候再渲染?)假如不应该,有什么好办法么?
假如应该存数据库,有什么办法吧html代码转化成sql安全?比如还有需要替换的字符我没有注意到?或者有现成的库?
Vous pouvez consulter mes réponses à des questions similaires sur la mise en œuvre de l'interface d'édition d'articles par Flask
Flask
Il existe déjà un plug-in pour le traitement des MD,Flask-Pagedown
. Mais vous pouvez aussi simplement utiliser la bibliothèquemardown
. Pour deux questions :Dois-je enregistrer la page Web dans la base de données ? (Ou simplement enregistrer le texte markdown dans la base de données, puis le restituer lors de l'affichage ?) Sinon, existe-t-il un bon moyen ?
Dans le livre "Flask Web Development : Practical Web Application Development Based on Python" écrit par l'auteur
Flask
, le texte HTML et le texte markdown sont enregistrés dans la base de données. Le HTML est pris directement lors de la navigation, et le texte markdown est pris lorsque. édition, lors de l'enregistrement du démarque dans la base de données, analysez-le en HTML et enregistrezS'il doit être stocké dans la base de données, existe-t-il un moyen de convertir le code html en SQL en toute sécurité ? Par exemple, y a-t-il des caractères à remplacer que je n'ai pas remarqués ? Ou existe-t-il une bibliothèque prête à l'emploi ?
Si vous utilisez la bibliothèque
markdown
, appelez directement :Si vous utilisez des plugins :
Le texte Markdown est stocké dans la base de données et le serveur implémente un filtre dans jinja2 pour restituer le HTML et afficher le markdown. Le filtre que j'ai défini est le suivant :
Utilisation :