python - flask+jinja2+sqlite3,如何保存markdown格式的文章
高洛峰
高洛峰 2017-04-17 17:38:35
0
2
690
  1. 背景:

    • 环境如题:win + python3 + flask + jinja。

    • 初学python,在做一个博客工具练习flask,sql目前只有入门知识。

    • 目标是想在发布文章的时候,支持markdown。

  2. 问题:标题/加粗等都没有问题,但是在插入图片/超链接的时候,拼接的sql语句会被文章(已经被转化为html)中的引号等符号破坏导致报错。

  3. 我做的尝试:

    • xxx.replace(""", "\"").replace("\\", "\"),实测并没有用。

    • 使用HTMLParser的时候,发现依赖的markupbase包没有(pip3 install 提示没找到,豆瓣源)。

  4. 想请教的是:

    • 是否需要把网页存到数据库中去?(或者只存markdown文本到数据库,展示的时候再渲染?)假如不应该,有什么好办法么?

    • 假如应该存数据库,有什么办法吧html代码转化成sql安全?比如还有需要替换的字符我没有注意到?或者有现成的库?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(2)
阿神

Flask の記事編集インターフェイスの実装に関する同様の質問に対する私の回答をご覧ください

FlaskMD を処理するためのプラグイン Flask-Pagedown がすでに存在します。ただし、mardown ライブラリのみを使用することもできます。 2 つの質問:

  1. Web ページをデータベースに保存する必要がありますか? (または、マークダウン テキストをデータベースに保存し、表示時にレンダリングするだけですか?) そうでない場合、何か良い方法はありますか?
    著者の著書「Flask Web Development: Pythonによる実践Webアプリケーション開発」では、HTMLとマークダウンテキストの両方がデータベースに保存され、HTMLは閲覧時に直接取得され、マークダウンは閲覧時に取得されます。編集中、マークダウンをデータベースに保存するときに、HTML に解析して Flask

    を保存します。
  2. データベースに保存する必要がある場合、HTML コードを安全に SQL に変換する方法はありますか?たとえば、私が気づかなかった置換が必要な文字はありますか?それとも既成のライブラリがあるのでしょうか?


    ライブラリを使用する場合は、markdown

    を直接呼び出します。
  3. リーリー
プラグインを使用する場合:

リーリー

いいねを押す +0
黄舟

マークダウン テキストはデータベースに保存され、サーバーは jinja2 にフィルターを実装して HTML をレンダリングし、マークダウンを表示します。私が定義したフィルターは次のとおりです:

リーリー

使用:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート