DjangoVue前后分离_markdown编辑器(搭建博客步骤三)

简介: DjangoVue前后分离_markdown编辑器(搭建博客步骤三)

@TOC

django

在django的app中引入mdeditor
image.png

django-mdeditor

pip安装

$ pip install django-mdeditor

image.png

setting.py引入mdeditor

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',#用户
    'article',#文章
    'corsheaders',#跨域问题
    'mdeditor',#Markdown编辑
]

image.png

model使用markdown
MDTextField()

from django.db import models
from django.utils import timezone
from users.models import Users
from mdeditor.fields import MDTextField
# Create your models here.


class Articles(models.Model):
    P_var=(
        ('开心','开心'),
        ('奥里给','奥里给')
        )
    kind = models.CharField(choices=P_var,blank=True, null=True,max_length=8)
    #种类
    title=models.CharField(blank=True, null=True, max_length=20)
    #文章名字
    describe=models.TextField(blank=True,null=True)
    #描述
    count = models.BigIntegerField(default=0)  # 点赞数量
    #点赞数量
    body = MDTextField()
    #文章内容 markdown
    image = models.ImageField(upload_to='static/media/product/image/', blank=True, null=True)
    #文章封面
    publish=models.DateTimeField(default=timezone.now)
    #当前时间自动存储
    user=models.ForeignKey(Users,related_name='user_article',on_delete=models.CASCADE)
    #外码关联person,级联删除
    class Meta:
        ordering=("-publish",)#反向查询
        db_table = 'Article'

进入admin后台即可编辑
image.png

vue

vue项目引入markdown相关包

使用vue-markdown

$ npm install --save vue-markdown
$ npm install github-markdown-css
$ npm install highlight.js

main.js引入

import 'github-markdown-css/github-markdown.css'
import hljs from 'highlight.js'
import 'highlight.js/styles/github.css'
// Vue.use(hljs)
Vue.directive('highlight', function(el) {
   
   
    const blocks = el.querySelectorAll('pre code')
    blocks.forEach(block => {
   
   
        hljs.highlightBlock(block)
    })
})

展示markdown的vue组件中,添加components

<template>
  <div class="mavoneditor">
    <div class="markdown-body" >
      <!-- {
   
   % if v-for="item in md_data"%} -->
      <VueMarkdown :source="value" v-highlight></VueMarkdown>
    </div>
  </div>
</template>
import VueMarkdown from "vue-markdown";
export default {
   
   
  components: {
   
   
    VueMarkdown,
  },
  data(){
   
   
  return{
   
   
  value:'md的原生语句'
}
  }

vue展示django的md内容

  created(){
   
   
      let that = this;
      console.log("测试created!");
      axios
        .get(that.baseurl)
        .then((res) => {
   
   
          console.log("获取Article");
        //   console.log(res,res.data,res.data.msg);

          that.md_data.push(res.data.article); //markdown值传递
        })
        .catch((res) => {
   
   
          console.log(res);
        }); //get log
    }

image.png
image.png

目录
相关文章
|
2月前
|
程序员 Linux iOS开发
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
110 1
|
2月前
《使用「Markdown」编辑器的那些天 |CSDN编辑器测评》
《使用「Markdown」编辑器的那些天 |CSDN编辑器测评》
34 0
|
1月前
|
存储 移动开发 编解码
基于HTML5开发的Markdown在线编辑器
Markdown是一种轻量级标记语言,以其简洁易读的格式而备受程序员和作者们的青睐。随着互联网的发展,越来越多的在线Markdown编辑器应运而生,为用户提供了更加便捷、高效的写作和编辑环境。本文将探讨基于HTML5开发的Markdown在线编辑器的设计原理、功能特点以及技术优势。
60 4
|
2月前
|
前端开发 C++ iOS开发
几款主流好用的markdown编辑器介绍
几款主流好用的markdown编辑器介绍
141 1
|
2月前
|
存储 移动开发 编解码
基于HTML5开发的Markdown在线编辑器
Markdown是一种轻量级标记语言,以其简洁易读的格式而备受程序员和作者们的青睐。随着互联网的发展,越来越多的在线Markdown编辑器应运而生,为用户提供了更加便捷、高效的写作和编辑环境。本文将探讨基于HTML5开发的Markdown在线编辑器的设计原理、功能特点以及技术优势。
37 1
基于HTML5开发的Markdown在线编辑器
|
6天前
|
Linux C++ 开发者
几款主流好用的markdown编辑器介绍
几款主流好用的markdown编辑器介绍
13 0
|
2月前
|
Web App开发 移动开发 搜索推荐
常见的Markdown在线编辑器
在线Markdown编辑器提供了更加稳定和流畅的用户体验。用户无需下载安装任何软件,只需打开浏览器,即可在任何设备上轻松使用这款编辑器,实现随时随地的写作。基于HTML5的在线Markdown编辑器可实现即时的编辑和预览功能
41 2
|
21天前
Markdown编辑器--冷门实用知识总结
Markdown编辑器--冷门实用知识总结
|
2月前
|
Web App开发 存储 机器学习/深度学习
欢迎使用CSDN-markdown编辑器
欢迎使用CSDN-markdown编辑器
27 0
|
2月前
|
API CDN
Electron Markdown编辑器实战:资源管理器实现
Electron Markdown编辑器实战:资源管理器实现