Flask项目集成富文本编辑器

UEditor简介

UEditor是是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。
具体文档参见:http://fex-team.github.io/ueditor/

UEditor入门部署与体验

1.1下载UEditor

访问UEditor首页,下载1.4.3 PHP UFT-8版本的UEditor(最新版本为1.5.0),解压至Flask项目的static目录。解压后UEditor树状结构图如下图所示:

|  static/
|    |  ueditor/
|    |    |+dialogs/
|    |    |+lang/
|    |    |+php/
|    |    |+themes/
|    |    |+third-party/
|    |    |-config.json
|    |    |-index.html
|    |    |-ueditor.all.js
|    |    |-ueditor.all.min.js
|    |    |-ueditor.config.js
|    |    |-ueditor.parse.js
|    |    |-ueditor.parse.min.js

1.2创建demo文件

在解压后的目录创建demo.html,填入下面的html代码

<!DOCTYPE HTML>
<html lang="en-US">
 <head>
         <meta charset="UTF-8">
         <title>ueditor demo</title>
</head>

 <body>
         <!-- 加载编辑器的容器 -->
 <script id="container" name="content" type="text/plain">
                 这里写你的初始化内容
         </script>
         <!-- 配置文件 -->
         <script type="text/javascript" src="ueditor.config.js"></script>
         <!-- 编辑器源码文件 -->
         <script type="text/javascript" src="ueditor.all.js"></script>
         <!-- 实例化编辑器 -->
         <script type="text/javascript">
                 var ue = UE.getEditor('container');
         </script>
</body>

 </html> 

1.3在浏览器中打开demo.html

如果在浏览器中卡到了下面的编辑器,那么恭喜你,初步部署UEditor成功?!


Flask实现后端请求

与后台通信的功能:

    1.上传图片
    2.粘贴、拖动上传图片
    3.上传视频
    4.图片管理
    5.图片转存远程图片

获取配置信息

在初始化编辑器时,首先向后端请求配置信息,后端接受到请求后,返回相应的配置信息。

请求参数:

GET    {"action": "config"}
POST    "upfile":File Data

返回格式:

// 需要支持callback参数,返回jsonp格式
{
    "imageUrl": "http://localhost/ueditor/php/controller.php?action=uploadimage",     "imagePath": "/ueditor/php/", "imageFieldName": "upfile",
    "imageMaxSize": 2048,     
    "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"]
}

文件、视频、图片上传

由于不同方式上传文件的功能的实现方法是一样的,这里只做一次讲解。上传的文件可用request.files['upfile']获取。

请求参数:

GET {"action": "uploadimage"}
POST "upfile": File Data

action说明:   uploadimage上传图片、uploadvideo上传视频、uploadfile上传文件 

返回格式:

{
     "state": "SUCCESS",
     "url": "upload/demo.jpg",
     "title": "demo.jpg",
     "original": "demo.jpg"
·}

功能代码实现:

@app.route('/upload/', methods=['GET', 'POST'])
def upload():
        result = {}
        action = request.args.get('action')
        if action in ('uploadscrawl'):
                base64data = request.form['upfile'] # 这个表单名称以配置文件为准
                img = base64.b64decode(base64data) # 这里保存文件并返回相应的URL
                with open(filename_to_save, 'wb') as fp:
                        fp.write(img)
                result = {
                        "state": "SUCCESS",
                        "url": "upload/demo.jpg",
                        "title": "demo.jpg",
                        "original": "demo.jpg"
                 }
 return json.dumps(result)

远程抓图

远程抓图主要是把站外的图片保存到本地或指定的图片服务器,当复制或粘贴其他网站的图片时,会触发远程抓图功能。
远程图片列表可用通过” request.form.getlist('source[]') “获取。

思路:遍历远程图片列表,通过urllib将图片下载并进行保存。

请求参数:

GET {
     "action": "catchimage",
    "source": [
         "http://a.com/1.jpg“
     ]
}

返回格式:

// 需要支持callback参数,返回jsonp格式
// list项的state属性和最外面的state格式一致
{
     "state": "SUCCESS",
     "list": [{
         "url": "upload/1.jpg",
         "source": "http://b.com/2.jpg",
         "state": "SUCCESS" }
        ]
}

Flask UEditor完整DEMO:https://coding.net/u/wtx358/p/flask-ueditor-demo/git

原文地址:http://flask123.sinaapp.com/article/47/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,176评论 5 469
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,190评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,232评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,953评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,879评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,177评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,626评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,295评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,436评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,365评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,414评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,096评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,685评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,771评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,987评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,438评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,032评论 2 341

推荐阅读更多精彩内容