Django中如何使用Markdown 编辑器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
基于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中注册后,可以看到如下效果,左边是编辑器,右边是预览,很方便
部署到线上环境时,要记得执行命令
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})
模板代码
<div>
{{ post.body|safe }}
</div>
看完上述内容,你们掌握Django中如何使用Markdown 编辑器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。