Tool 005-Django框架博客渲染markdown文本

Python Tool 101 - Tool 005 - Django框架博客渲染markdown文本

环境背景:

最近在整理自己的一些文章,然后把之前的文章迁移到自己搭建的博客上,遇到一个现实的问题是之前写的都是markdown文本,现在迁移到Django博客上如何展示?以及之后如何在Django博客上编写markdown文本?在查阅了资料之后,发现可以使用django-mdeditor app可以实现后台录入实现markdown方式写作,Pygments可以帮助我在前端界面上渲染显示markdown文本。最终的结果是很不错的,所以归纳总结之后与大家一起分享下,Django框架博客渲染markdown文本。

提出问题:

Django框架博客渲染markdown文本

解决方案:

后台录入markdown文本

  • 安装django-mdeditor app
  • 修改指定配置
  • 后台录入

前端显示markdown文本

  • 安装Pygments
  • 获取代码高亮的css

实际操作:

第一步:

# 后台录入
# 1.安装django-mdeditor app
python -m pip install django-mdeditor
# 2.settings.py的INSTALLED_APPS中添加’mdeditor’
# 3.添加路径设置到setting
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads') #uploads必须存在,且在项目目录下
MEDIA_URL = '/media/' #你上传的文件和图片会默认存在/uploads/editor下
4.添加url(project urls)
path('mdeditor/', include('mdeditor.urls')),
```

第二步:

# 编写model 
from mdeditor.fields import MDTextField
# 文章信息表
class Article(models.Model):
title = models.CharField(max_length=20)
author = models.CharField(max_length=20)
tags = models.CharField(max_length=30)
introduction = models.CharField(max_length=180)
images = models.CharField(max_length=360)
pub_date = models.DateTimeField('date published')
content = MDTextField()
# admin中注册之后就可以在admin后台查看效果了

显示效果

Tool 005-Django框架博客渲染markdown文本

第三步:

#前端显示
#需要额外安装:
python -m pip install markdown
yum -y install python-pygments
python -m pip install Pygments==1.4
#获取代码高亮css
pygmentize -S default -f html -a .codehilite > code.css

第四步:

# 编写 views
from markdown import markdown
def DjangoBlogShow(request):
id = request.GET['id']
articledata = Article.objects.get(id=id)
article_content_data = markdown(articledata.content,extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',
'markdown.extensions.toc',])
return render(request, 'web/blogsystem/show.html',{'articledata':articledata,'article_content_data':article_content_data})

显示效果

Tool 005-Django框架博客渲染markdown文本

Tool 005-Django框架博客渲染markdown文本


分享到:


相關文章: