Flask博客文章广泛的控件-如何控制文本格式,添加链接,图片等功能

问题描述 投票:0回答:1

我正在使用Flask python网络框架构建网站博客。我可以创建一个博客帖子,其中content字段是我帖子的所有文本所在的位置。问题在于它只是带有原始未格式化文本的TextAreaField。在我见过的每个主要论坛中(甚至是这个堆栈溢出的帖子),您在组装帖子时都可以使用粗体,斜体,添加链接,添加代码样式的文本,添加图片,添加编号列表,标题等。

如何将其中任何内容添加到我的帖子中?在视觉上,我要使用的是这些控件:

enter image description here

可以使文本的一部分变为粗体,另一部分使其变为斜体,在其下划线,添加图片,添加链接,添加代码部分,添加标题(这些足以满足我的需要;还可以嵌入一个视频会很好)。我了解到图像可能会更困难,因为我遇到了将图像保存到何处的问题。每个帖子都保存它们,将它们独立保存在数据库的另一个表中,并将它们链接到单个帖子(一个帖子到多张图片的关系),将它们存储到外部服务(例如Imgur)?

简而言之,我的PostModel表(使用flask_sqlalchemy)包含以下列:titlecontentauthordatePostedtags。我的PostForm表单包含以下字段:titleStringField),contentTextAreaField)和tagsFieldList(FormField()))以及按钮submitField

我如何在我的Flask Web应用程序中配合这些功能?是否可以格式化内容TextAreaField中的文本,使其以某种方式显示?希望我能说清楚。预先感谢。

python flask blogs
1个回答
0
投票

我需要的是所见即所得(所见即所得)编辑器。有许多免费提供的热门软件,其中包括TinyMCE,Summernote,CKEditor等。

您当前的代码几乎不需要修改。将其与代码集成起来并不难。您指定所需的库和初始化代码。

通常,您有content类型的textarea字段,该字段需要为库指定的class属性(对于Summernote说class="summernoteClass"),以便库的javascript可以将textarea元素作为目标代码。

然后,您只需像以前一样将此内容存储到数据库中。请注意,这可能需要清理内容,以防用户键入任何恶意的<script>(如果这样,我建议先使用bleach python模块,然后再选择bleach.clean(str))。

最后使用Jinja2模板框架显示html背面(而不是html实体),您只需在html代码中附加|safe即可,如下所示:<p class="article-content">{{ post.content | safe }}</p>。也许这会帮助其他人。

© www.soinside.com 2019 - 2024. All rights reserved.