1. 程式人生 > >11. Django 引入富文字編輯器KindEditor

11. Django 引入富文字編輯器KindEditor

碼農故事多
開啟微信掃一掃,關注微信公眾號【資料與演算法聯盟】

轉載請註明出處:http://blog.csdn.net/gamer_gyt
博主微博:http://weibo.com/234654758
Github:https://github.com/thinkgamer

寫在前邊的話

一路走來,DJango也用了挺久了,自己也做了一些基於Django的小專案,具體可看github,但是Django預設的admin後臺編輯文字框實在是太醜了,而且單一,其實在很久之前就想寫這篇文章了,但是由於種種原因拖延到了現在,終於下定了決心來寫,現在時間是00:17。

KindEditor介紹

官網地址是:

http://kindeditor.net
目前最新版本是4.1.1,我現在做這個東西是用python3.5 ,django 1.10.4 ,三者之間完全相容
看一張效果圖吧:
這裡寫圖片描述

使用過程

1:下載該檔案,解壓至相應的js檔案目錄

例如我的目錄是:
這裡寫圖片描述
這裡我刪除了多餘的檔案,因為是python專案,其他的都用不到,所以選擇刪除,節省空間

2:settings.py和urls.py配置

在專案的settings.py 中設定MEDIA_ROOT 目錄
eg:

#檔案上傳配置
MEDIA_ROOT = os.path.join(BASE_DIR,’uploads’)

專案的根urls.py 配置
eg:

url(r'^admin/uploads/(?P<dir_name>[^/]+)$', upload_image, name='upload_image'),
url(r"^uploads/(?P<path>.*)$", views.static.serve, {"document_root": settings.MEDIA_ROOT, }),

3:編寫upload.py檔案

該檔案存放於專案的根目錄同名資料夾下,eg:

這裡寫圖片描述

upload.py:主要是對上傳的圖片做一些限制

# -*- coding: utf-8 -*-
from django.http import HttpResponse from django.conf import settings from django.views.decorators.csrf import csrf_exempt import os import uuid import json import datetime as dt @csrf_exempt def upload_image(request, dir_name): ################## # kindeditor圖片上傳返回資料格式說明: # {"error": 1, "message": "出錯資訊"} # {"error": 0, "url": "圖片地址"} ################## result = {"error": 1, "message": "上傳出錯"} files = request.FILES.get("imgFile", None) if files: result =image_upload(files, dir_name) return HttpResponse(json.dumps(result), content_type="application/json") #目錄建立 def upload_generation_dir(dir_name): today = dt.datetime.today() dir_name = dir_name + '/%d/%d/' %(today.year,today.month) if not os.path.exists(settings.MEDIA_ROOT): os.makedirs(settings.MEDIA_ROOT) return dir_name # 圖片上傳 def image_upload(files, dir_name): #允許上傳檔案型別 allow_suffix =['jpg', 'png', 'jpeg', 'gif', 'bmp'] file_suffix = files.name.split(".")[-1] if file_suffix not in allow_suffix: return {"error": 1, "message": "圖片格式不正確"} relative_path_file = upload_generation_dir(dir_name) path=os.path.join(settings.MEDIA_ROOT, relative_path_file) if not os.path.exists(path): #如果目錄不存在建立目錄 os.makedirs(path) file_name=str(uuid.uuid1())+"."+file_suffix path_file=os.path.join(path, file_name) file_url = settings.MEDIA_URL + relative_path_file + file_name open(path_file, 'wb').write(files.file.read()) return {"error": 0, "url": file_url}

4:config.js 配置

該配置檔案主要是對django admin後臺作用的,比如說我們現在有一個news的app,我們需要對該模組下的 news類的content加上富文字編輯器,這裡需要做兩步

第一:在news 的admin.py中加入

class Media:
    js = (
        '/static/js/kindeditor-4.1.10/kindeditor-min.js',
        '/static/js/kindeditor-4.1.10/lang/zh_CN.js',
        '/static/js/kindeditor-4.1.10/config.js',
    )

第二:config.js 中配置
上邊說了我們是要對news的content加上富文字編輯器,那麼我們首先要定位到該文字框的name屬性,滑鼠右鍵檢視原始碼,如下紅線標示:
這裡寫圖片描述

config.js 中加入:

//news
KindEditor.ready(function(K) {
    K.create('textarea[name="new_content"]', {
        width : "800px",
        height : "500px",
        uploadJson: '/admin/uploads/kindeditor',
    });
});

至此,已經完成,如果你還有什麼不懂的,可以加我關注我的微信公眾號,進行提問,謝謝!

Over!

相關推薦

11. Django 引入文字編輯KindEditor

開啟微信掃一掃,關注微信公眾號【資料與演算法聯盟】 轉載請註明出處:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/th

django引入文字編輯Markdown

一、引入編輯器: 1,編輯器樣式效果截圖: 2,引入檔案: https://github.com/qiwsir/DjangoPracticeProject/tree/master/mysite2/static 放入本地static目錄下。 3,html程式碼:

Django文字編輯KindEditor的使用和圖片上傳

Blog中有文章Model,文章內容會包括各種格式的資料,比如:圖片、超連結、段落等。為了達到這個目的,我們可以使用富文字編輯器。我們有多重選擇來使用富文字編輯器,比如kindeditor、django-ckeditor、自定義ModelAdmin的媒體檔案。這樣就將kindeditor加上了富文字編輯器。4

[Python] Django學習筆記(4) -- Admin模組新增文字編輯kindeditor

django-admin中新增富文字編輯器的幾種方式:1. 使用第三方的庫,如django-ckeditor2. 在admin中定義富文字編輯器的widget3. 通過定義ModelAdmin的媒體檔案方法3步驟:1. 下載kindeditorhttp://kindedito

bbs專案引入文字編輯和處理xss攻擊和文章預覽

一、富文字編輯上傳文章和圖片   富文字編輯器我們使用kindeditor,我們首先去官網下載,然後解壓,放到我們的static的目錄中     然後我們在html中這樣使用富文字編輯器 <!DOCTYPE html> <html lang

文字編輯KindEditor的使用

       富文字編輯器KindEditor,是一種可內嵌於瀏覽器,所見即所得的文字編輯器。它是一種解決可一般的使用者不同html等網頁標記但是需要在網頁上設定字型的顏色、大小、樣式等資訊問題一個文字編輯器 第一步 引入三個檔案(一個css,兩個js) &nbs

Django文字編輯的使用,超級簡單~

前端顯示: Step1: pip3 install django-tinymce Step2: <script src="/static/tiny_mce/tiny_m

django框架文字編輯的使用方法

1. 在settings.py中配置如下 INSTALLED_APPS = ["tinymce"] TINYMCE_DEFAULT_CONFIG = { 'theme': 'advanced', 'width': 600, 'height': 40

Html編輯文字編輯KindEditor使用

介紹一個html編輯器,富文字編輯器,KindEditor,比較好用。 官網詳細教程:http://kindeditor.net/about.php 效果圖: 首先,下載kindeditor包。放到專案的JS外掛包中。 在html頁面定義一個textarea,

文字編輯 kindeditor的使用

引入js<script type="text/javascript" src="${pageContext.request.contextPath}/js/kindeditor-4.1.10/k

python 全棧開發,Day83(部落格系統子評論,後臺管理,文字編輯kindeditor,bs4模組)

一、子評論 必須點選回覆,才是子評論!否則是根評論點選回覆之後,定位到輸入框,同時加入@評論者的使用者名稱 定位輸入框 focus focus:獲取物件焦點觸發事件 先做樣式。點選回覆之後,定位到輸入框,加入被評論的使用者名稱 給回覆的a標籤加一個class=reply_btn,關

兩款文字編輯——Kindeditor+UEditor

菜菜君最近第一次使用富文字編輯器,折騰了半天才摸到了一點門道。先概括一下。kindeditor比UEditor的功能少,但是也算五臟俱全,基本的功能都有了。另外,UEditor的介面感覺更好看。但是,菜菜君覺得,UEditor用起來更復雜啊啊啊啊!至少,菜菜君現在還沒弄好.

nodejs express製作後臺引入文字編輯

需求 由於ueditor官方沒有nodejs後臺的版本,所以只有通過別的大神開發的版本使用了。故寫個教程,留作以後備用。 下載ueditor 引入ueditor 先在express的public資料夾內建立一個ueditor目錄,用於存放所有的解壓出

day70_淘淘商城專案_03_商品類目選擇 + 圖片上傳 + 圖片伺服器FastDFS + 文字編輯KindEditor + 新增商品_匠心筆記

淘淘商城專案_03 1、商品類目選擇 1.1、功能分析 1.1.1、資料庫表結構設計 1.1.2、前端頁面分析 1.2、服務層工程開發 1.2.1、Dao

vue--引入文字編輯

https://blog.csdn.net/div_ma/article/details/79536634 // 使用 https://blog.csdn.net/div_ma/article/details/79536634 // 配置 感謝分享https

django-tinymce django支援文字編輯

先展示一個呵呵: 流程大致如下: 2:解壓然後把tinymce放到你的meida目錄下,我放在media下的js資料夾裡(media和js如果沒有自己建立),結構下: 3:編輯urls.py,在urlpatterns中新增(r'^site_media/(?

django 新增文字編輯

新增富文字編輯器可以方便使用者寫入文字,對文字進行修改,新增圖片 視訊等等,可以讓你編輯的內容更加豐富在進行網頁中新增富文字編輯器,先下載一個編輯器軟體,我用的是UEditor百度富文字編輯器,先建立一個HTML檔案,tempalstes/blog/upload.html在以

文字編輯kindeditor 前臺獲取編輯內容 ,及後臺獲取內容

必須的js方法 KindEditor.ready(function(K) { editor = K.create('textarea[name="contents"]',options); })

文字編輯kindeditor的使用!快速掌握

廢話不多說,本篇主要是教你如何使用kindeditor的請看: 首先下載    地址:http://kindeditor.net/down.php 直接官方下載即可                  

web/easyui/ssm框架引用KindEditor文字編輯

web/easyui/ssm框架引用KindEditor富文字編輯器 KindEditor 是一套開源的線上HTML編輯器,主要用於讓使用者在網站上獲得所見即所得編輯效果,開發人員可以用 KindEditor 把傳統的多行文字輸入框(textarea)替換為視覺化的富文字輸入框。