• 【Django组件】KindEditor富文本编辑器上传文件,html样式文本,VUE异步提交数据(易懂版)


    1:下载与配置

    适合版本: python3

    下载:http://kindeditor.net/down.php

    文档:http://kindeditor.net/doc.php

    将文件包放入static文件夹内并且配置:

    settings.py配置:
    
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static'),
        os.path.join(BASE_DIR, "media"),
    ]
    
    # Django用户上传的都叫media文件
    MEDIA_URL = "/media/"
    # media配置,用户上传的文件都默认放在这个文件夹下
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    
    
    REST_FRAMEWORK = {
        "DEFAULT_AUTHENTICATION_CLASSES": [],
        "DEFAULT_PERMISSION_CLASSES": [],
    }

    2:前端代码:

    html部分:
    
    <div id="app">
    
        <div>
            <p>内容(TinyMCE编辑器,支持拖放/粘贴上传图片) </p>
            <textarea name="article_content" id="article_content" cols="60" rows="20"
                      style=" 100%" v-model="article_contents">
            </textarea>
        </div>
        <input type="submit" class="btn btn-info" @click="submits">
    
    </div>
    
    
    JS部分:
    <script src="/static/js/jquery-3.4.1.min.js"></script>
    <script src="/static/js/popper.js"></script>
    <script src="/static/js/bootstrap.js"></script>
    <script charset="utf-8" src="/static/kindeditor/kindeditor-all-min.js"></script>
    // 配置属性 <script> KindEditor.ready(function (K) { window.editor = K.create('#article_content', { "100%", height: "500px", allowFileManager: true, afterCreate: function () { this.sync(); }, afterBlur: function () { this.sync(); }, uploadJson: "/KindEditor/up/", // 请求路由

    filePostName: "upload_img" // 后端获取的参数名字
    }); }); </script>
    // 配置属性
    <script type="text/javascript" src="/static/js/vue.min.js"></script> 
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script>
    var vm = new Vue({
    el: '#app',
    data: {
    article_contents: "",
    },
    methods: {
    submits() {
    console.log("KindEditor", KindEditor.instances[0].html()) // 获取到图片的/样式以及内容
    },

    }
    })
    </script>

    3:上传文件,图片之类的,配置后端路由

    1:上传文件路由配置:
        # 上传图片,文件
        url('KindEditor/up/', upImage.upload),
    
    
    
    
    2:upImage.py:
    
    # 上传图片
    from django.http import HttpResponse
    from car import settings
    import os, json
    from django.shortcuts import render, HttpResponse, redirect
    
    
    def upload(request):
        # 上传服务器图片
        image_fils = request.FILES.get("upload_img")
        path = os.path.join(settings.MEDIA_ROOT, "userimg", image_fils.name)  # 路径
    
        # 创建文件夹目录
        file_path = os.path.join(settings.MEDIA_ROOT, "userimg")
        if not os.path.exists(file_path):
            os.makedirs(file_path)
    
        # 写到服务器
        with open(path, "wb") as f:
            for line in image_fils.chunks():
                f.write(line)
                f.close()
    
        # 返回图片给前端
        res = {
            "error": 0,
            "url": "/static/userimg/" + image_fils.name
        }
    
        return HttpResponse(json.dumps(res))
  • 相关阅读:
    windows下如何添加、删除和修改静态路由
    node.js后台快速搭建在阿里云(二)(pm2和nginx篇)
    使用PM2守护Nodejs命令行程序
    使用pm2管理nodejs应用
    ubuntu 下安装nodejs以及pm2
    nginx优化缓冲缓存
    nginx proxy_buffer_size 解决后端服务传输数据过多,其实是header过大的问题
    经济规律 宏观调控 与个体
    宏观调控
    《论教育》-------叔本华
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/12905494.html
Copyright © 2020-2023  润新知