python - flask+jinja2+sqlite3,如何保存markdown格式的文章
高洛峰
高洛峰 2017-04-17 17:38:35
0
2
689
  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 라이브러리만 사용할 수도 있습니다. 두 가지 질문:

  1. 웹페이지를 데이터베이스에 저장해야 하나요? (아니면 마크다운 텍스트를 데이터베이스에 저장한 다음 표시할 때 렌더링합니까?) 그렇지 않은 경우 좋은 방법이 있습니까?
    Flask 저자가 쓴 책 "Flask Web Development: Practical Web Application Development Based on Python"에서는 HTML과 마크다운 텍스트 모두 데이터베이스에 저장되는데, 브라우징 시에는 HTML을 직접 가져오고, 마크다운을 할 때는 가져옵니다. 편집. 마크다운을 데이터베이스에 저장할 때 HTML로 구문 분석하여

  2. 저장합니다.
  3. 데이터베이스에 저장해야 한다면 html 코드를 sql로 안전하게 변환할 수 있는 방법은 없을까요? 예를 들어, 내가 눈치채지 못한 채 바꿔야 하는 문자가 있나요? 아니면 이미 만들어진 라이브러리가 있나요?
    markdown 라이브러리를 사용하는 경우 직접 전화하세요:

으아악

플러그인을 사용하는 경우:

으아악
黄舟

마크다운 텍스트는 데이터베이스에 저장되며, 서버는 HTML을 렌더링하고 마크다운을 표시하기 위해 jinja2에 필터를 구현합니다. 제가 정의한 필터는 다음과 같습니다.

으아악

사용:

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿