富文本编辑器是用来提交大段文字的有效途径,同时也比较美观一些。下面记录下最简用法。首先是pip

安装完毕后,观察下面语句,先引入模块然后绑到app上最后就可以个调用了,最简单的取数据方法是:request.form.get(‘ckeditor’)这个就能直接拿出提交数据

from flask_ckeditor import CKEditor
ckeditor = CKEditor(app)
@app.route('/fwb', methods=['GET', 'POST'])
def fwb():
    if request.method == 'POST':
        print(request.form.get('ckeditor'))
        return request.form.get('ckeditor')
    return render_template('fuwenben.html')

配套的HTML,观察一下就会发现灰常的简单。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>


<body>
<form method="post">
    {{ ckeditor.create() }}
    <input type="submit">
</form>
{{ ckeditor.load() }}
{{ ckeditor.config() }}  <!-- 这时不用设置name参数 -->
</body>


</html>

另外一种方式是用像wtf一样使用


from flask_wtf import FlaskForm
from flask_ckeditor import CKEditorField
from wtforms import StringField, SubmitField
# 定义类
class PostForm(FlaskForm):
    title = StringField('Title')
    body = CKEditorField('Body')
    submit = SubmitField('Submit')
#定义路由处理
@app.route('/fwbwtf', methods=['GET', 'POST'])
def fwb_wtf():
    form=PostForm()
    if request.method == 'POST':
        print(form.body.data)
        return form.body.data
    return render_template('fuwenbenwft.html',form=form)

配套HTML

{% extends "bootstrap/base.html" %}
{% block title %}This is an example page{% endblock %}
{% block content %}
    {{ super() }}
<form method="post">
    {{ form.title.label }}{{ form.title() }}
    {{ form.body.label }}{{ form.body() }}
    {{ form.submit() }}
</form>
{{ ckeditor.load() }}
{{ ckeditor.config(name='body') }}
{% endblock %}

总体也很简单。

01-05 20:51