问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问django如何接入tinymce富文本编辑器?

发布网友 发布时间:2022-04-18 07:53

我来回答

2个回答

懂视网 时间:2022-04-18 12:14

最近由于需要在django admin中使用到富文本编辑器,由于我比较喜欢CKEditor富文本编辑器,于是就有了这篇文章,下面这篇文章主要给大家介绍了在django中轻松使用富文本编辑器CKEditor的方法,需要的朋友可以参考下。

前言

django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便。遗憾的是,django并没有提供官方的富文本编辑器,而后者恰好是内容型网站后台管理中不可或缺的控件。ckeditor是一款基于javascript,使用非常广泛的开源网页编辑器。它可以和多种编程语言相结合,python当然也不例外。本文就来介绍一下如何在基于django博客系统如何完美地用上ckeditor。

使用方法

1、安装

pip install django-ckeditor

2、将‘ckeditor'settings.py中的INSTALLED_APPS

3、由于djang-ckeditor在ckeditor-init.js文件中使用了JQuery,所以要在settings.py中设置CKEDITOR_JQUERY_URL来指定JQuery库的路径,例如:

CKEDITOR_JQUERY_URL ='https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'

4、设定STATIC_ROOT,执行python manage.py collectstatic,将CKEditor需要的媒体资源拷入STATIC_ROOT指定的路径中。

STATIC_ROOT = os.path.join(BASE_DIR,'static/')

5、

from django.db import models
from ckeditor.fields import RichTextField
class Blog(models.Model):
 title = models.CharField(max_length=50,verbose_name="标题")
 content = RichTextField(blank=True,null=True,verbose_name="内容")

 def __unicode__(self):
 return self.name

效果:

文件上传

1、在settings.py中的INSTALLED_APPS中添加ckeditor_uploader

2、CKEditor使用Django的存储API,默认使用Django的文件存储,会用到MEDIA_ROOT和MEDIA_URL,需要在settings.py中定义,此外还可以指定CKEDITOR_UPLOAD_PATH,它位于MEDIA_ROOT下:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
CKEDITOR_UPLOAD_PATH = 'uploads/'

3、在项目的urls.py中添加CKEditor的URL映射

url(r'^ckeditor/', include('ckeditor_uploader.urls')),

如果不加,可能会出现以下错误:

4、(可选项) 在settings.py中加入CKEDITOR_IMAGE_BACKEND ,使能thumbnails,例如:

CKEDITOR_IMAGE_BACKEND = 'PIL'
from ckeditor_uploader.fields import RichTextUploadingField
class Post(models.Model):
 content = RichTextUploadingField()

总结

热心网友 时间:2022-04-18 09:22

这个几乎不需要配置啊。 你先把tineymce安装好。这个看它的教程中的installation就可以搞定。

<!-- Place inside the <head> of your HTML -->
<script type="text/javascript" src="<your installation path>/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
    selector: "textarea"
 });
</script>

<!-- Place this in the body of the page content -->
<form method="post">
    <textarea></textarea>
</form>

你只需要将form中的action写成你的django对应的处理的path就可以了。

内容加载,可能就需要用template了。 

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
社保到期了还有时效吗 2023年河北退休人员认证时间 社保待遇资格认证有效期怎么认证 ...语法How long does it take you to get to school? 此句中“it... 海信电视初始设置后无信号 设置海信电视恢复出厂设置搜不到电视信号 海信一族电视大锅恢复设置没信号怎么? 如何用c程序读取txt文件? 成都膨胀螺丝型号 云南农信个人如何开通手机银行 我想问一下怎样才能冻结对方的? 怎么帮别人冻结 我想问一下怎样才能冻结对方的? 怎么申请冻结对方 怎样冻结别人的? 怎样冻结别人的? 冻结别人的怎么冻结 我想问一下怎样才能冻结对方的? 如何冻结别人的 怎么冻结对方的? 肥料文案怎么写吸引人 英语翻译.在线等! How did I change my attitude toward my father? My attitude toward a mixed marriage 以这个话题写一篇英语口语的短文 急需!!!!! what is the general attitude toward wealth in our society 求英语作文my attitude toward job 急! 高一英语作文,求参考答案 attitude is everything是哪个足球教练说的 以如果我有很多钱为题写一篇不少于80词的英语作业 一篇题目为My attitude towards science的英语作文200词~300词 哪个高人帮忙写一篇阿 丹霞山旅游风景区门票多少钱 丹霞山的风景有什么特色 广东的丹霞山和白云山哪个更好玩 抽奖得的抢在哪领 这个抽奖活动中奖后没有弹出完善信息页面,让我怎么领取啊??? 应用宝3次抽奖,抽到了怎么领 问道里抽奖得到的物品到哪去领啊 _百度问一问 苹果手机来电报姓名怎么关掉 如何将诺基亚6300手机通讯录全部导入到摩托罗拉A1600 如何将通讯录导入A1680手机 武汉贝斯特通信集团股份有限公司怎么样? 如何在 Django 后台 admin 中集成一个富文本编辑器 净利润为负的公司,分析其盈利能力有意义吗? 就是能把人相片变老的软件 有谁知道那个变老软件吗? 有没有让人变老的软件啊?加分 朋友圈慢慢变老的软件是什么软件 qq飞车手游超能竞速赛怎么玩 qq飞车超能竞速 QQ飞车手游超能竞速赛有的地图明明我跑第一,却变成了最后一个,真是邪门