Django学习:使用富文本编辑器(15)

目前后台写博客的页面比较简陋,只能用来设置一些简单的文字,或者格式,而且编写不太方便。为了方便博客编写,可以使用富文本编辑器。

新增一篇文章进行测试

进入详情页,加粗效果并没有显示出来

修改详情页的模板页面blog_detail.html

----snip----
<div class='blog-content'>{{ blog.content|safe }}</div>
----snip----

此时刷新详情页,加粗效果显示了出来。

但是在博客类型显示摘要的时候,会显示出<b></b>标签

修改博客列表的模板页面blog_list.html

----snip----
<p>{{ blog.content|straptags|truncatechars_html:120 }}</p>
----snip----

此时博客列表显示正常。



开始使用django-ckeditor编辑器

  • 安装django-ckeditor

pip install django-ckeditor

  • 在项目中进行注册

settings.py

----snip----
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'ckeditor',
]
----snip----
  • 配置model,把文本字段改成RichTextField

models.py

from ckeditor.fields import RichTextField

----snip----
class Blog(models.Model):
    title = models.CharField(max_length=50)
    content = RichTextField()

----snip----    

进入后台编写博客页面,可以看到博客样式已经变了。

为了让其显示为简体,修改settings.pyLANGUEGE_CODE

LANGUEGE_CODE = 'zh-hans'

此时博客编写页面变为简体字

现在存在一个问题,这里的图片无法上传本地图片。

下面开始解决上传图片功能问题:

  1. 安装pillow

pip install pillow

  1. settings.py中注册应用ckeditor_uploader
----snip----
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'ckeditor',
    'ckeditor_uploader'
]
----snip----
  1. 配置settings.py,同时在项目目录下建立一个media文件夹
----snip----

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

# 配置ckeditor
CKEDITOR_UPLOAD_PATH = 'upload/'

# 自定义设置
EACH_PAGE_BLOGS_NUMBER = 7

  1. 配置mysite urls.py总路由
from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
from .views import home

urlpatterns = [
    path('', home, name='home'),
    path('admin/', admin.site.urls),
    path('ckeditor/',include('ckeditor_uploader.urls')),
    path('blog/',include('blog.urls'))
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  1. 配置models.py,把字段改成RichTextUploadingField
from django.db import models
from django.contrib.auth.models import User
from ckeditor_uploader.fields import RichTextUploadingField

# Create your models here.

class BlogType(models.Model):
    type_name = models.CharField(max_length=15)

    def __str__(self):
        return self.type_name

class Blog(models.Model):
    title = models.CharField(max_length=50)
    content = RichTextUploadingField()
    author = models.ForeignKey(User, on_delete='models.DO_NOTHING')
    blog_type = models.ForeignKey(BlogType, on_delete='models.DO_NOTHING')
    created_time = models.DateTimeField(auto_now_add=True)
    last_updated_time = models.DateTimeField(auto_now=True)
    is_deleted = models.BooleanField(default=False)

    def __str__(self):
        return '<Blog: %s>' % self.title

    class Meta:
        ordering = ['-created_time']
  1. 执行数据库迁移

python manage.py makemigrations

python manage.py migrate

  1. 重启服务进入博客编写页面,可以进行本地图片上传。

我们上传一张图片进行测试

进入博客详情页面进行查看,可以看到上传成功

原文地址:https://www.cnblogs.com/sjfeng1987/p/11429722.html

时间: 2024-10-14 22:36:35

Django学习:使用富文本编辑器(15)的相关文章

Django中使用富文本编辑器Uedit

Uedit是百度一款非常好用的富文本编辑器 一.安装及基本配置 官方GitHub(有详细的安装使用教程):https://github.com/zhangfisher/DjangoUeditor 1. settings.py INSTALLED_APPS = [ ... 'DjangoUeditor', ... ] 2. 配置urls from django.conf.urls import url, include urlpatterns = [ # 富文本相关url url(r'^uedit

Django使用富文本编辑器

1.下载kindeditor 网址:http://kindeditor.net/demo.php2.解压到项目中 地址:\static\js\kindeditor-4.1.103.删除没用的文件 例如:example,php,asp等4.在需要使用富文本编辑器的model中定义meta类: class Media: js = ( '/static/js/kindeditor-4.1.10/kindeditor-min.js', '/static/js/kindeditor-4.1.10/lang

silverlight中使用富文本编辑器

因为项目的需要在silverlight项目中使用富文本编辑器,好用的在线富文本编辑器有很多Fckeditor,百度的ueditor,但是这些富文本编辑器都是html的,想在silverlight中使用必须承载html页面再使用这些富文本编辑器. 之前找到了一个在silverliht中承载html页面的第三方控件htmlhost,但是这个控件有一个不好的地方时,用了只有silverlight项目中所有服务端控件都不能输入中文. 最近找到了一个大牛自己写的一个控件,能够满足我们的需要,自己改造之后放

在Django项目中使用富文本编辑器

1 开发要点 现在网上有很多的富文本编辑器,包括Markdown.tinymce.UEditor.KindEditor.ckeditor等等.在项目中使用这些编辑器主要有以下几个问题: 编辑页面 在HTML页面渲染编辑器: 定制编辑器的功能,比如有哪些文本样式.图片上传.代码插入: 定制编辑器的样式,指的是编辑器整体的样式,比如高度.宽度.显示位置等等: 预览内容: 获取内容: 显示页面 显示内容: 2 Django APP 下表列出一些常用的APP,它们都可以在GitHub上找的到,链接见下文

在nuxt中使用富文本编辑器quill

在nuxtjs中使用quill富文本编辑器的时候遇到了一些问题,在此记录 1.下载 npm i quill --s npm i vue-quill-editor --s 2.在plugins下面新建文件vue-quill-editor.js写入以下内容,主要是用了自定义的工具栏 import Vue from 'vue'; import VueQuillEditor from 'vue-quill-editor'; import Quill from 'vue-quill-editor/node

vue使用富文本编辑器vue-quill-editor实现配合后台将图片上传至七牛

一.全局注册:main.js import Vue from 'vue' import VueQuillEditor, { Quill } from 'vue-quill-editor' import { ImageDrop } from 'quill-image-drop-module' import ImageResize from 'quill-image-resize-module' import 'quill/dist/quill.core.css' import 'quill/dis

vue中使用富文本编辑器ueditor

参考: https://www.cnblogs.com/daimo/p/7525146.html https://blog.csdn.net/liujun03/article/details/84453287 1.下载文件包http://ueditor.baidu.com/website/download.html(我用的jsp的UTF-8版本) 2.文件包放到static下 3.  cnpm install --save vue-ueditor-wrap 4.使用 <div class="

html中使用富文本编辑器

引入kindeditor-all.js和lang/zh-CN.js KindEditor.ready(function(K) { window.editor1 = K.create('#id', { allowFileManager : true }); }); 原文地址:https://www.cnblogs.com/zhengziru/p/12074300.html

Django集成百度富文本编辑器uEditor

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. 首先从ueEditor官网下载最新版本的包,目前官网上提供了ASP..NET.PHP.JSP版本的,django版本只有一个第三方个人开发的,但看上出配置起来稍微复杂一点. 这里不介绍uEditor的使用方法,也不过多解释uEditor的配置方法,官网上都有详细的文档和API介绍,下载的Demo中也有常用的方法的示例代码,这里主要介绍uEdi