Django 前端Markdown渲染
2019-04-15 本文已影响0人
AllenBigBear
之前写了一篇关于用markdown编辑器发布文章的笔记,不过直到今天我想在文章中添加图片时候我才发现,前端根本没法渲染。
google之后才知道前端也需要进行渲染。
1:安装markdown包
pip install markdown
2:在views视图函数中引入markdown
我们需要在views视图函数中引入并设置,比如我显示文章具体内容的页面的views
def article_detail(request,article_id):
article = Article.objects.get(article_id=article_id)
comments = Comment.objects.filter(article_id=article_id)
article.increase_views()
article.article_content = markdown.markdown(article.article_content,
extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',
'markdown.extensions.toc',
])
#判断用户是否已经为这篇文章点过赞了
like_created = Likes.objects.filter(articlelikes__article_id=article_id,like_by=request.user.id).first()
if request.method == "GET":
commentform = CommentForm()
elif request.method == "POST":
commentform = CommentForm(request.POST)
c = commentform.save(commit=False)
c.article_id = article_id
c.save()
return redirect('team:article_detail',article_id=article_id)
return render(request,'article_detail.html',locals())
将文章内容这个字段article_content进行markdown设置
就是这么简单
3:前端页面修改
最后一步是在前端页面对需要渲染的内容添加过滤器 safe,防止转义
<h3>{{article.article_content|safe}}</h3>
4:测试

这样就是完成了markdown的使用
参考文章:https://www.zmrenwu.com/courses/django-blog-tutorial/materials/10/