前言
markdown是一個非常好的編輯器,用過的都說好,如果搭建一個博客平台的話,需要在后台做文章編輯,可以整合一個markdown的文本編輯器。
github上關於django的markdown插件很多的,看了半天也不知道選哪個好,本篇用django-mdeditor先試試
django-mdeditor
pip安裝django-mdeditor
pip install django-mdeditor
在項目的settings.py的INSTALLED_APPS中添加’mdeditor’,
# Application definition
INSTALLED_APPS = [
# ......
'xadmin', # 新添加
'crispy_forms', # 新添加
'stdimage', # 上傳圖片
'mdeditor', # markdown
]
然后設置圖片等資源的存放media地址,之前配置過就不用重復配置了
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urls.py設置訪問地址
from django.conf.urls import url
from django.urls import include
urlpatterns = [
url(r'mdeditor/', include('mdeditor.urls')),
]
models模型
在models.py中添加
from django.db import models
from mdeditor.fields import MDTextField # 必須導入
class Blog(models.Model):
'''博客管理'''
title = models.CharField(max_length=30)
content = MDTextField() # 注意為MDTextField()
def __str__(self):
return self.__doc__ + "title->" + self.title
class Meta:
verbose_name = "博客發布"
verbose_name_plural = verbose_name
xadmin.py中注冊
import xadmin
from . import models
class BlogAdmin(object):
list_display = ['title',]
xadmin.site.register(models.Blog, BlogAdmin)
配置好之后,執行 makemigrations 和migrate,同步數據
python manage.py makemigrations
python manage.py migrate
實現效果
xadmin后台可以左側輸入,右邊實時顯示對應的效果
也可以支持本地圖片上傳
插入代碼也可以支持
如果需要在前台顯示的話,可以在views.py獲取到數據庫的數據后,使用markdown.markdown()修飾為html語句,然后傳到前端顯示