django admin使用在前端_Django| 给你博客装个Markdown编辑器
小白學Django第一天| MVC、MVT以及Django的那些事
- 小白學Django第二天| Django原來是這么玩的!
- 小白學Django第三天| 一文帶你快速理解模型Model
- 小白學Django第四天| Django后臺管理及配置MySQL數據庫
- 小白學Django第五天| 視圖View的初步使用
- 小白學Django第六天| 一文快速搞懂模板的使用
- Django實戰小型圖書人物信息網頁(MVT的綜合運用)
- 小白學Django第七天| 模型類Model進階學習
- 小白學Django第八天| 登錄案例實戰
- 持續更新中...
前言
最近自己在開發一個blog,因為比較喜歡用Markdown來寫文章,而且目前很多平臺都支持Markdown的語法,所以想給blog裝個Markdown的編輯器。于是,就搜了一下,發現了django-mdeditor這個庫,給大家分享一下。
簡單介紹
Github地址:?
https://github.com/pylixm/django-mdeditor
Django-mdeditor是基于Editor.md的一個django Markdown 文本編輯插件應用。
Django-mdeditor的靈感參考自項目 django-ckeditor
https://github.com/django-ckeditor/django-ckeditor
后端編輯器使用
1.安裝相關庫
pip install django-mdeditor # 用于后臺編輯pip install markdown # 用于前端顯示
首先大家先安裝這兩個庫,django-mdeditor庫就是用在我們管理后臺的md編輯器,markdown則是在前端顯示時使用。
2.配置
安裝完兩個庫后,我們需要進行相關的配置。
新增setting配置:
INSTALLED_APPS = ['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
'mdeditor',
]
除了配置上面的信息,還需要配置資源文件夾:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')MEDIA_URL = '/media/' #你上傳的文件和圖片會默認存在/media/editor下
以為就完了?不,你還需要去url進行配置:
點擊放大大家把我打紅框的代碼弄上去就ok了
這時,我們就大概配置完成了。
3.使用Markdown
點擊放大此時只需要在model中填寫相應的屬性,即可調用該編輯器。
當然,在進入管理頁面之前,你需要在admin中進行注冊
admin.site.register(Acticle) # Acticle 是我文章的model名打開后臺之后,我們就會發現Markdown編輯器出現了:
我們在這里插入的圖片或者上傳的文件都會在media文件夾中,這個文件夾在上面配置中提到,必須要有!!!
前端使用
我們使用了Markdown編輯器編寫的文章在前端顯示時,必須得將Markdown語法“翻譯”成富文本的形式,所以這里我們需要使用到markdown這個庫。
視圖函數
pip install markdown我們書寫的博客文章內容存在Post的body屬性里,回到我們的詳情頁視圖函數,對post的body 的值做一下渲染,把Markdown文本轉為HTML文本再傳遞給模板:
import markdownfrom django.shortcuts import render, get_object_or_404
from .models import Post
def post_article(request, pk):
post = get_object_or_404(Post, pk=pk)
# 記得在頂部引入 markdown 模塊
post.body = markdown.markdown(post.body,
extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',
'markdown.extensions.toc',
])
return render(request, 'blog/detail.html', context={'post': post})
可能有些朋友不懂get_object_or_404方法,給大家簡單介紹一下get_object_or_404:我們原來調用django 的get方法(model.object.get()),如果查詢的對象不存在的話,會拋出一個DoesNotExist的異常,現在我們調用django get_object_or_404方法,它會默認的調用django 的get方法,如果查詢的對象不存在的話,會拋出一個Http404的異常,我感覺這樣對用戶比較友好,如果用戶查詢某個產品不存在的話,我們就顯示404的頁面給用戶,比直接顯示異常好。
markdown.extensions.extra:?用于標題、表格、引用這些基本轉換
markdown.extensions.codehilite:?用于語法高亮
markdown.extensions.toc:?用于生成目錄
替換網頁模板
在模板中找到展示博客文章的地方加上如下代碼,注意這里需要使用safe過濾器。
{{ post.body|safe }}
通過這樣就能夠顯示md語法的文章了
總結
在開發過程中遇到的一個小需求就分享給大家,當然我介紹的只是mdeditor的一部分知識,mdeditor還有一些相關的配置,這里我就沒給大家說了,大家可以去GitHub上自行看他們的官方文檔,順便也可以去star一下!
原創不易!轉發在看!
小白學Django第一天| MVC、MVT以及Django的那些事
- 小白學Django第二天| Django原來是這么玩的!
- 小白學Django第三天| 一文帶你快速理解模型Model
- 小白學Django第四天| Django后臺管理及配置MySQL數據庫
- 小白學Django第五天| 視圖View的初步使用
- 小白學Django第六天| 一文快速搞懂模板的使用
- Django實戰小型圖書人物信息網頁(MVT的綜合運用)
- 小白學Django第七天| 模型類Model進階學習
- 小白學Django第八天| 登錄案例實戰
- 持續更新中...
總結
以上是生活随笔為你收集整理的django admin使用在前端_Django| 给你博客装个Markdown编辑器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提升你的开发效率,10 个 NPM 使用
- 下一篇: 实现一个简单的前端水印