日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

django admin使用在前端_Django| 给你博客装个Markdown编辑器

發布時間:2023/12/19 HTML 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django admin使用在前端_Django| 给你博客装个Markdown编辑器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小白學Django系列:
  • 小白學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 markdown
from 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编辑器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。