富文本 ckeditor 的使用及传递到后台与在前端使用

本文介绍了ckeditor富文本编辑器的使用方法,包括前端配置、后端接口接收以及通过POST传递内容到后台的步骤,展示了简洁高效的编辑器应用。

因为  ckeditor 界面比较简洁,所以记录下教程:

外观如下:


使用的方式如下:

首先前端:

<!DOCTYPE html>
<html>
<head>
    <title>完整demo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   <script src="//cdn.ckeditor.com/4.4.6/standard/ckeditor.js"></script>
</head>
<body>
<div>
    <h1>完整demo</h1>
    <textarea id="content" class="ckeditor"></textarea>
</div>

<script type="text/javascript">
CKEDITOR.replace('content', {
   filebrowserUploadUrl: '/ckupload/',
});
</script>
</body>
</html>

然后是后端接口:

def gen_rnd_filename():
    filename_prefix = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
    return '%s%s' % (filename_prefix, str(random.randrange(1000, 10000)))

@app.route('/ckupload/', methods=['POST', 'OPTIONS'])
def ckupload():
    """CKEditor file upload"""
    error = ''
    url = ''
    callback = request.args.get("CKEditorFuncNum")

    if request.method == 'POST' and 'upload' in request.files:
        fileobj = request.files['upload']
        fname, fext = os.path.splitext(fileobj.filename)
        rnd_name = '%s%s' % (gen_rnd_filename(), fext)

        filepath = os.path.join(app.static_folder, 'upload', rnd_name)

        # 检查路径是否存在,不存在则创建
        dirname = os.path.dirname(filepath)
        if not os.path.exists(dirname):
            try:
                os.makedirs(dirname)
            except:
                error = 'ERROR_CREATE_DIR'
        elif not os.access(dirname, os.W_OK):
            error = 'ERROR_DIR_NOT_WRITEABLE'

        if not error:
            fileobj.save(filepath)
            url = url_for('static', filename='%s/%s' % ('upload', rnd_name))
    else:
        error = 'post error'

    res = """<script type="text/javascript">
  window.parent.CKEDITOR.tools.callFunction(%s, '%s', '%s');
</script>""" % (callback, url, error)

    response = make_response(res)
    response.headers["Content-Type"] = "text/html"
    return response

如上 则富文本部署成功。

随后则是获取富文本内容:

$("#submit").click(function(){
 var content = CKEDITOR.instances.content.getData();
    alert( content )

    });
 其中,获取富文本内容的方式为:

var content = CKEDITOR.instances.content.getData();

随后使用post传递到后台:

$.post("/shiyan",
  {
      name:"数据内容"
  })

如下则获取post所传递的 内容

@app.route('/shiyan', methods=['GET', 'POST'])
def shiyan():
    if request.method == 'POST':  # 当以post方式提交数据时
        print "-----------1111111111---------------------"
        print request.form["name"]
如果数据保存到数据库后,再在前端复现,会因为是字符而无法显示富文本的格式。所以要用jq转化为html格式:

<script src="https://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
     var a = $("#l").text();
      $("#l").html(a)
});
</script>
如上,数据传到前段后,通过jq   text()获取到数据。然后再以html()方式修改回去。则就能正常显示富文本格式了






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值