我的网站搭建 (第六天) Ckeditor编辑器

news/2024/5/18 22:39:04/文章来源:https://blog.csdn.net/weixin_34401479/article/details/91927256

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    富文本编辑器,Rich Text Editor, 简称 RTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器,这是百度百科的对富文本编辑器的解释。我们可以借助富文本编辑器,编辑出来一个包含html的页面,从而页面的显示效果,可以由网站管理员定义,而不用完全依赖于开发的人员。我之前使用的是一个叫tinymce的富文本编辑,它比较精简,功能不是很丰富。在使用了一段tinymce后,就转用了django-ckeditor,后来发现是真的好用,当然还有一个叫做Ueditor的编辑器,听说也还不错,但我这里就用ckeditor来布置了。

    在这里,我会将步骤大致记录下来,但还是要推荐给大家一篇非常棒的关于ckeditor配置的文章,也是我之前参考学习的。Django博客开发:添加富文本编辑器ckeditor,网上大部分教程与此类似,但个人感觉都没有这篇写的详细,写的易懂。

安装环境

    1.使用pip安装 django-ckeditor 和 pillow,pillow用于生成缩略图,用来在编辑器里浏览上传的图片

pip install django-ckeditor
pip install pillow

    2.在 project/settings.py 里进行如下设置:

INSTALLED_APPS = ['ckeditor','ckeditor_uploader',
]MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
CKEDITOR_UPLOAD_PATH = 'upload/'
CKEDITOR_IMAGE_BACKEND = 'pillow'

    3.在project/urls.py里,加入 ckeditor_uploader.url

from django.conf.urls import url,include
from django.conf.urls.static import static
from django.conf import settings
from django.contrib import adminurlpatterns = [url(r'', include('ckeditor_uploader.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) #没有这一句无法显示上传的图片

    4.在blog/models.py的Post类,让正文字段使用 RichTextUploadingField()

from ckeditor_uploader.fields import RichTextUploadingFieldclass Post(models.Model):content = RichTextUploadingField(verbose_name='正文')

    5.迁移数据库,做完这一步就可以在后台编辑文章时发现编辑器已经添加成功了

pyhton manage.py makemigrations
python manage.py migrate

自定义编辑器

    如果想要自定义编辑器,添加或删除一些按钮的话,需要在settings.py里设置 CKEDITOR_CONFIGS

CKEDITOR_CONFIGS = {# 配置名是default时,django-ckeditor默认使用这个配置'default': {# 使用简体中文'language':'zh-cn',# 编辑器的宽高请根据你的页面自行设置'width':'auto','height':'150px','image_previewText':' ','tabSpaces': 4,'toolbar': 'Custom',# 添加按钮在这里'toolbar_Custom': [['Bold', 'Italic', 'Underline', 'Format', 'RemoveFormat'],['NumberedList', 'BulletedList'],['Blockquote', 'CodeSnippet'],['Image', 'Link', 'Unlink'],['Maximize']],# 插件'extraPlugins': ','.join(['codesnippet','uploadimage','widget','lineutils',]),}
}

    当配置名称是 'default',django-ckeditor会默认使用这个配置,CKEDITOR_CONFIGS里可以添加多个配置,比如

CKEDITOR_CONFIGS = {# 配置名是default时,django-ckeditor默认使用这个配置'default': {}  # 名为custom的配置  'custom': {}
}

    当需要使用非默认配置时,需要在 RichTextUploadingField() 里指定该配置名称

class Post(models.Model):content = RichTextUploadingField(config_name='custom')

添加代码功能

    为什么从tinymce编辑器传到ckeditor很大原因就是为平时都会用编辑器写一些代码,所以编辑器自然需要添加代码块的功能,tinymce似乎没有这个功能,至少我目前没有找到。而ckeditor只需要用到插件codesnippet,并且ckeditor的插件放在了ckeditor/static/ckeditor/ckeditor/plugins/路径下。以codesnippet为例,在下面代码的第16行和21行分别添加了 'CodeSnippet' 和 'codesnippet'

CKEDITOR_CONFIGS = {# 配置名是default时,django-ckeditor默认使用这个配置'default': {# 使用简体中文'language':'zh-cn',# 编辑器的宽高请根据你的页面自行设置'width':'730px','height':'150px','image_previewText':' ','tabSpaces': 4,'toolbar': 'Custom',# 添加按钮在这里'toolbar_Custom': [['Bold', 'Italic', 'Underline', 'Format', 'RemoveFormat'],['NumberedList', 'BulletedList'],['Blockquote', 'CodeSnippet'],['Image', 'Link', 'Unlink'],['Maximize']],# 插件'extraPlugins': ','.join(['codesnippet','uploadimage','widget','lineutils',]),}
}

代码高亮、代码行数  

    从ckeditor官网下载 插件prism(点这里直接下载),然后将其解压到ckeditor/static/ckeditor/ckeditor/plugins路径下,同样的还需要在CKEDITOR_CONFIGS里将extraPlugins对应的value里加入插件 'prism' 和另外两个插件"lineutils"、"widget" ,这两个插件无须下载,在django-ckeditor中已经有了

'extraPlugins': ','.join(['codesnippet','uploadimage','prism','widget','lineutils',]),

    去prismjs官网下载css文件http://prismjs.com/download.html,选择喜欢的主题,勾选支持的语言,以及选择line-numbers功能,下载后把解压到static/blog/css下

    然后在模板中引用静态文件

<script src="{% static 'ckeditor/ckeditor/plugins/prism/lib/prism/prism_patched.min.js' %}"></script>
<link rel="stylesheet" href="{% static 'blog/css/prism.css' %}">

在admin以外的地方使用django-ckeditor

    如果在admin以外的地方使用django-ckeditor,比如添加评论功能

    在渲染表单的那个页面需要引入 ckeditor-init.js 和 ckeditor.js 两个文件,否则编辑器无法显示

{% load static %}
<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>

编辑框响应式

1. 需要CKEDITOR_CONFIGS里设置 'width': 'auto'

2.

<script>$(".django-ckeditor-widget").removeAttr('style');
</script>

 

转载于:https://my.oschina.net/zhenfei/blog/1934805

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_797346.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是SEM?SEM是否包括SEO?

什么是SEM&#xff1f;SEM是否包括SEO&#xff1f; 在最近一次营销专业人士和有兴趣了解数字营销的人聚会上&#xff0c;我很惊讶于有人要求我确认他们对“SEM”的理解是准确的。 虽然这个术语本身看起来很基本&#xff0c;但这个问题并不是一个糟糕的问题&#xff0c;因为这个…

23.模拟登录cookies请求速询网站数据

23.模拟登录cookies请求速询网站数据 采集速询网站数据&#xff1a;网站地址&#xff1a;http://www.suxun0752.com/index.html网站是需要账号登录才给返回信息的&#xff0c;我这里是直接拿的登录后的cookies请求的数据&#xff0c;cookies我也给了注释&#xff0c;没做深层的…

域名添加cdn_优化网站-设置内容分发cdn和对象存储cos

刚开始接触花了不少时间去弄&#xff0c;通过搜网上资料&#xff0c;才解决问题。以腾讯云为例&#xff0c;为什么要用腾讯云&#xff0c;因为CDN 用户每月均可享受10GB免费流量包&#xff0c;接入加速域名后于次月1号发放至您的账户。还有新开通 CDN 的用户还会在开通后的6个月…

html漂亮的表格模板+背景_App开发主题响应式网站着陆页模板

哈喽&#xff01;大家好&#xff0c;这里公众号&#xff0c;Adobe素材助手。App开发主题响应式网站着陆页模板&#xff0c;用于应用程序站点。它是干净&#xff0c;现代和创造性的设计适合所有类型的应用程序风格的网站。这个模板是创造性和专业性的完美结合&#xff0c;所有部…

10个留美必备生活网站

不少同学习惯了天朝各种方便的互联网服务&#xff0c;一到美国往往感到不适应&#xff0c;其实美国也有很多提供类似服务的网站。今天小编就给你做一个大盘点。帮助你在美国也能轻松享受和国内类似的服务。1.Yelp 美国最大的点评网站民以食为天&#xff0c;今天我们首先要介绍的…

html颜色渐变配色方案,css网站推荐 渐变色配色方案 - 小俊学习网

渐变色彩搭配方案的酷站&#xff0c;推荐2个渐变色方案的网站。无论网页配色还是设计人员都可以参考这些美丽的色彩。UIgradients – 美丽的UI渐变色分享站 并可转成CSS代码通过渐变彩色滤镜实现很多漂亮的效果&#xff0c;然而用什么渐变颜色才好呢&#xff1f;可以看看今天为…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

大型网站技术架构(三)架构核心要素

2019独角兽企业重金招聘Python工程师标准>>> 所谓架构&#xff0c;一种通俗的说法就是“最高层次的规划&#xff0c;难以改变的决定”&#xff0c;这些规划和决定奠定了事物未来发展的方向和最终的蓝图。 而软件架构即“有关软件整体结构与组件的抽象描述&#xff0…

【读书笔记《Bootstrap 实战》】6.单页营销网站

我们已经掌握了很多实用 Bootstrap 的重要技能。现在&#xff0c;是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了。此次将带领大家做一个漂亮的单页高端营销网站。 主要任务如下&#xff1a; □ 一个大型介绍性传送带图片展示区&#xff0c;配有自定义的响应式…

【JavaWeb开发】初步实现网站应用钉钉扫码登录

写在前面&#xff1a;如果你还不知道钉钉是什么&#xff0c;就赶紧问问Google。当然&#xff0c;这篇博客是用流水线的形式完成钉钉扫码登录。 第一步&#xff0c;看官方文档 网站应用钉钉扫码登录开发指南&#xff08;钉钉官网&#xff09; 如果你想要通过用户扫码获取到他的…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

大型网站技术架构(七)网站的可扩展性架构

2019独角兽企业重金招聘Python工程师标准>>> 扩展性是指对现有系统影响最小的情况下&#xff0c;系统功能可持续扩展或提升的能力。 设计网站可扩展架构的核心思想是模块化&#xff0c;并在此基础上&#xff0c;降低模块间的耦合性&#xff0c;提供模块的复用性。模…

使用apache2在ubuntu下搭建简易网站(新手小白适用)

使用apache2在ubuntu下搭建简易网站 写在开头 本文章适合有一点linux基础但是不会网站搭建的小白&#xff0c;这里使用的网页是我之前写的一个作业&#xff0c;所以大家就不要嫌丑啦~~ 正文 本文使用阿里云云服务器进行部署 安装apache2 安装前先更新下软件 sudo apt upda…

苹果cms模板_万词无限模板站群黑帽SEO利器

万词无限模板排名站群&#xff0c;端口站群,无限模板,关键词,可做百度搜狗360各大引擎。100万流量利器&#xff0c;强悍无与伦比。无需任何推送&#xff0c;全自动收录&#xff0c;动态轮链池&#xff0c;内部有秒收课程霸屏关键词技巧。程序自带蜘蛛池功能无需任何辅助蜘蛛池&…

Nginx从入门到实战(七):定时器动态切换nginx配置-实现网站自动启停

背景&#xff1a; 有些网络由于某种特殊需求&#xff0c;需要每日在指定时间内开放&#xff0c;在其余时间展示“系统正在维护中…”的页面。 基于类似需求&#xff0c;最好的当然是定时自动处理了&#xff0c;省去人工处理的麻烦&#xff1b; 一、整体思路 1、设计2个nginx.…

一个网站的LOGO

今天董事长叫我去谈了话&#xff0c;有了一个网站的构想于是就先做一个LOGO也来了&#xff0c;好久没有做美工方面的东东了希望这个LOGO能用上&#xff0c;把网站做起来像我这种人天生就是为做网站的董事长也说以前让我们做那些&#xff0c;对我们来说也是和自己的专长搭不上现…

我要自学网polyworks_四大适合年轻人自学的网站!知乎超100万人推荐,自学改变人生...

在这个互联网时代&#xff0c;想要学点什么东西&#xff0c;上网搜一搜就有&#xff0c;但网上的资源五花八门&#xff0c;看得人眼花缭乱&#xff0c;想要找到高质量又免费的自学资源还真不是见容易的事&#xff01;不过别着急&#xff0c;今天就来跟大家分享几个质量杠杠的自…

html理财用户中心模板,银行理财HTML5网站模板

银行理财HTML5网站模板资源下载此资源下载价格为4D币&#xff0c;请先登录资源文件列表codedown123-0820-34/css/bootstrap.css , 141622codedown123-0820-34/css/flexslider.css , 6661codedown123-0820-34/css/font-awesome.css , 35134codedown123-0820-34/css/style.css , …

【摘】改进电子商务网站易用性的10个方法

今天消费者网络购物的支出越来越多&#xff0c;可是太多的网站并没有考虑到他们网站和订购流程的易用性&#xff0c;最终导致用户很快就放弃了他们的订购。 这里有10种可以提高你的电子商务网站易用性的方法&#xff0c;可以帮助你最大可能的提高网站的转化率&#xff0c;将用户…

网站维护必知:网站压力测试

【IT168 专稿】互联网的普及&#xff0c;宽带的流行&#xff0c;使得越来越多的个人和单位都架设了自己的网站。而充当网站的服务器的大多是普通的PC或者低档服务器&#xff0c;这样访问者人数一多或者遭受DDos攻击&#xff0c;很容易造成瘫痪。因此我们需要网站在真正发布前对…