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文本


分享到:


相關文章: