zoukankan      html  css  js  c++  java
  • django中ckeditor富文本编辑器使用

    1.安装模块

      (pillow是python的一个图像处理库)

      pip install django-ckeditor

      pip install pillow

    2.编辑seetings.py配置文件 

    INSTALLED_APPS = [
       'ckeditor',#富文本编辑器
        'ckeditor_uploader'#富文本编辑器上传图片模块
    ]
    
    #媒体文件配置
    MEDIA_URL = "/media/"
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    CKEDITOR_UPLOAD_PATH = "images"  # 上传图片保存路径,如果没有图片存储或者使用自定义存储位置,那么则直接写  ' ' ,如果是使用django本身的存储方式,那么你就指名一个目录用来存储即可。
    
    
    # 富文本编辑器ckeditor配置
    CKEDITOR_CONFIGS = {
        #(1)默认配置
        # 'default': {
        #     'toolbar': 'full',  # 工具条功能
        #     'height': 300,  # 编辑器高度
        #     'width': 800,  # 编辑器宽
        # },
    
        #(3)自定义配置带代码块显示
        'default': {
            'toolbar': (
                ['div', 'Source', '-', 'Save', 'NewPage', 'Preview', '-', 'Templates'],
                ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Print', 'SpellChecker', 'Scayt'],
                ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat'],
                ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
                ['Bold', 'Italic', 'Underline', 'Strike', '-', 'Subscript', 'Superscript'],
                ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'],
                ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
                ['Link', 'Unlink', 'Anchor'],
                ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'],
                ['Styles', 'Format', 'Font', 'FontSize'],
                ['TextColor', 'BGColor'],
                ['Maximize', 'ShowBlocks', '-', 'About', 'pbckcode'],
                ['Blockquote', 'CodeSnippet'],
            ),
            'width': 'auto',
            # 添加按钮在这里
            'toolbar_Custom': [
                ['NumberedList', 'BulletedList'],
                ['Blockquote', 'CodeSnippet'],
            ],
            # 插件
            'extraPlugins': ','.join(['codesnippet', 'widget', 'lineutils', ]),
        },
    }
    seetings.py

    3.编辑urls.py路由

    from django.conf.urls import url, include
    from django.contrib import admin
    from django.conf.urls.static import static
    from django.conf import settings
    from editer import views
    
    urlpatterns = [
                      url(r'^admin/', admin.site.urls),
                      url(r'^ckeditor/', include('ckeditor_uploader.urls')),
                      url(r'^index/', views.index),#测试获取后台编辑的内容用的
    
                  ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)  ## 没有这一句无法显示上传的图片
    urls.py

    4.app应用的models.py中的应用  

    from django.db import models
    from ckeditor.fields import RichTextField
    from ckeditor_uploader.fields import RichTextUploadingField
    
    
    class SPUModel(models.Model):
        '''这是spu表格'''
        name = models.CharField(max_length=32, verbose_name='商品名')
        sales = models.CharField(max_length=20, verbose_name='销售量')
        desc_pack = RichTextUploadingField(default='', verbose_name='商品详情')
    
        def __str__(self):
            return self.name
    
        class Meta:
            verbose_name = '商品表'
            db_table = verbose_name
            verbose_name_plural = verbose_name
    models.py

    5.数据库迁移指令

      makemigrations

      migrate

    6.创建admin超级用户

      createsuperuser

    7.app应用的admin.py文件中注册表  

    from django.contrib import admin
    from editer import models
    
    # Register your models here.
    admin.site.register(models.SPUModel)
    admin.py

    8.启动项目,进入admin后台管理编辑即可

      

         

     9.在templates文件夹中编写测试url返回页面index.html  

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CKEditorTest</title>
    </head>
    <body>
    <div>
        {% for obj in all %}
            <hr>
            <h2>第{{ forloop.counter }}篇:</h2>
            <h2>标题:{{ obj.name }}</h2>
            <h3>销量:{{ obj.sales }}</h3>
            {{ obj.desc_pack | safe }}
    
        {% endfor %}
    
    </div>
    </body>
    </html>
    index.html

    10.app应用的views.py文件中编写测试url对应的视图函数  

    from django.shortcuts import render
    from editer import models
    
    
    # Create your views here.
    def index(request):
        all_obj = list(models.SPUModel.objects.all().all().values('name','sales','desc_pack'))
    
        return render(request, 'index.html', {'all': all_obj})
    views.py

    11.重启项目,浏览器测试http://127.0.0.1:8000/index/

      

           

     参考博客:https://blog.csdn.net/weixin_43158056/article/details/93911844

  • 相关阅读:
    BZOJ 2301 [HAOI2011]Problem b ——莫比乌斯反演
    VIJOS 1889 天真的因数分解 ——莫比乌斯函数
    BZOJ 2440 [中山市选2011]完全平方数 ——莫比乌斯函数
    BZOJ 3939 [Usaco2015 Feb]Cow Hopscotch ——线段树 CDQ分治
    UOJ 274 【清华集训2016】温暖会指引我们前行 ——Link-Cut Tree
    BZOJ 2246 [SDOI2011]迷宫探险 ——动态规划
    BZOJ 2037 [Sdoi2008]Sue的小球
    BZOJ 3227 [Sdoi2008]红黑树(tree) ——贪心 动态规划
    BZOJ 1974 [Sdoi2010]auction 代码拍卖会 ——动态规划
    sql注入
  • 原文地址:https://www.cnblogs.com/open-yang/p/11572811.html
Copyright © 2011-2022 走看看