快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Django中如何使用Markdown编辑器

Django中如何使用Markdown 编辑器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站建设、网站设计、苏州网络推广、成都小程序开发、苏州网络营销、苏州企业策划、苏州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供苏州建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

基于django的markdown编辑器已经有人封装好了,不需要自己去造轮子。django-mdeditor 是基于Editor.md 这个前端开源库封装而成的。

总共涉及到两个库 django-mdeditor 用于 django admin 管理后台文章编辑, markdown 用在前台 markdown文本渲染成html 展示。

pip install django-mdeditor  # 用于后台编辑
pip install markdown # 用于前端显示

不需要写什么代码,基本就是做些配置

首先 settings.py 中添加配置,将mdeditor 这个app加进来

INSTALLED_APPS = [
    ... 省略 ...
    'mdeditor',
]

urls.py 中添加path(注意路径不要配错了,前面没有/)

 path("mdeditor/", include('mdeditor.urls'))

修改models中的field的类型,之前是TextField,改成MDTextField

from mdeditor.fields import MDTextField

class Article(BaseModel):
    title = models.CharField("标题", max_length=200, editable=True, blank=True)
    body = MDTextField("正文", default="", editable=True, blank=True)

将 Article 在admin中注册后,可以看到如下效果,左边是编辑器,右边是预览,很方便

Django中如何使用Markdown 编辑器

部署到线上环境时,要记得执行命令

 python manage.py collectstatic

把静态文件收集到 STATIC_ROOT 中, 否则 django-mdeditor 依赖的静态资源找不到就没法加载markdown编辑器出来了。

前端展示处理

先在服务端将markdown渲染成html返回给前端处理

import markdown
 
def detail(request, pk):
    article = get_object_or_404(Article, pk=pk)
    article.body = markdown.markdown(article.body,
                                  extensions=[
                                     'markdown.extensions.extra',
                                     'markdown.extensions.codehilite',
                                     'markdown.extensions.toc',
                                  ])
    return render(request, 'article/detail.html', context={'article': article})

模板代码


    {{ post.body|safe }}

看完上述内容,你们掌握Django中如何使用Markdown 编辑器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


新闻标题:Django中如何使用Markdown编辑器
本文网址:http://6mz.cn/article/gghseg.html

其他资讯