在Django中安裝Markdown編輯器

django-mdeditor
django2.0 python3.7 xadmin


Github地址:https://github.com/pylixm/django-mdeditor

** Django-mdeditor** 是基于 Editor.md 的一個(gè) django Markdown 文本編輯插件應(yīng)用趣效。https://pandao.github.io/editor.md/

1.在xadmin后臺(tái)使用

git clone https://github.com/pylixm/django-mdeditor

mdeditor
文件夾復(fù)制到項(xiàng)目中去
然后在你的項(xiàng)目 setting.py 中添加該模塊

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mdeditor',
    'article',
)

article模塊中model.py

from django.db import models
from mdeditor.fields import MDTextField

class Article(models.Model):
    title = models.CharField(max_length=100, null=False, verbose_name='文章標(biāo)題')
   content = MDTextField(verbose_name='文章內(nèi)容')

    class Meta:
        db_table = 'article'
        verbose_name = '文章列表'
        verbose_name_plural = verbose_name

在xadmin后臺(tái)中使用,到adminx.py中注冊(cè)

import xadmin
from django.db import models

from article.models import Article
from mdeditor.widgets import MDEditorWidget


class ArticleAdmin(object):
    list_display = ['title', 'desc']
    formfield_overrides = {
        models.TextField: {'widget': MDEditorWidget}
    }


xadmin.site.register(Article, ArticleAdmin)
md_editor.PNG

2.在前端使用
新建forms.py

from django import forms

from mdeditor.fields import MDTextFormField
from article.models import Article


class MDEditorModleForm(forms.ModelForm):
    class Meta:
        model = Article
        fields = '__all__'

在view.py

from django.http import HttpResponse
from django.shortcuts import render
from django.urls import reverse
from django.views import generic

# Create your views here.
import markdown

from article import models
from article import forms


def show_article(request):
    art = models.Article.objects.get(pk=1)
    art.content = markdown.markdown(art.content, extensions=[
        'markdown.extensions.extra',
        'markdown.extensions.codehilite',
        'markdown.extensions.toc',
    ])
    return render(request, 'article/show_article.html', {'art':art})


class MDEditorModleForm(generic.CreateView):
    form_class = forms.MDEditorModleForm
    template_name = 'article/editor_article.html'

    def get_success_url(self):
        return reverse('article:edit')


mdeditor_model_form_view = MDEditorModleForm.as_view()

然后主路由url.py

from user import views
import xadmin

urlpatterns = [
    path('admin/', xadmin.site.urls),
    path('mdeditor/', include('mdeditor.urls')),
    path('p/', include('article.urls', namespace='article')),
]

再 article下url.py

from django.urls import path

from article.views import show_article, mdeditor_model_form_view

app_name = 'article'
urlpatterns = [
    path('show/', show_article, name='show'),
    path('edt/', mdeditor_model_form_view, name='edit'),
]

在模板template文件夾建html模板
show_article.html

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="{% static 'css/mdcss/editormd.preview.min.css' %}">
    <link href="{% static 'css/mdcss/code.css' %}">

    <script src="{% static 'js/mdjs/jquery.min.js' %}"></script>
    <script src="{% static 'js/mdjs/marked.min.js' %}"></script>
    <script src="{% static 'js/mdjs/prettify.min.js' %}"></script>
    <script src="{% static 'js/mdjs/raphael.min.js' %}"></script>
    <script src="{% static 'js/mdjs/underscore.min.js' %}"></script>
    <script src="{% static 'js/mdjs/sequence-diagram.min.js' %}"></script>
    <script src="{% static 'js/mdjs/flowchart.min.js' %}"></script>
    <script src="{% static 'js/mdjs/jquery.flowchart.min.js' %}"></script>
    <script src="{% static 'js/mdjs/editormd.min.js' %}"></script>
</head>
<body>
<div id="editormd-view">
    <p > {{ art.content|safe }}</p>
</div>
</body>
</html>

模板中引入的css和js可以在https://github.com/pandao/editor.md找到

參考文獻(xiàn)

本文參考:
漂亮的 Django Markdown 富文本 app 插件

Django集成Markdown編輯器【附源碼】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惧眠,一起剝皮案震驚了整個(gè)濱河市溯泣,隨后出現(xiàn)的幾起案子洽腺,更是在濱河造成了極大的恐慌梆掸,老刑警劉巖痴脾,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異期贫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)异袄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門通砍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烤蜕,你說我怎么就攤上這事封孙。” “怎么了讽营?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵虎忌,是天一觀的道長。 經(jīng)常有香客問我橱鹏,道長膜蠢,這世上最難降的妖魔是什么堪藐? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮挑围,結(jié)果婚禮上礁竞,老公的妹妹穿的比我還像新娘。我一直安慰自己杉辙,他們只是感情好模捂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蜘矢,像睡著了一般狂男。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上品腹,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天岖食,我揣著相機(jī)與錄音,去河邊找鬼珍昨。 笑死县耽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镣典。 我是一名探鬼主播兔毙,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兄春!你這毒婦竟也來了澎剥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赶舆,失蹤者是張志新(化名)和其女友劉穎哑姚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芜茵,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叙量,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了九串。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绞佩。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猪钮,靈堂內(nèi)的尸體忽然破棺而出品山,到底是詐尸還是另有隱情,我是刑警寧澤烤低,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布肘交,位于F島的核電站,受9級(jí)特大地震影響扑馁,放射性物質(zhì)發(fā)生泄漏涯呻。R本人自食惡果不足惜凉驻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望魄懂。 院中可真熱鬧沿侈,春花似錦、人聲如沸市栗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽填帽。三九已至蛛淋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間篡腌,已是汗流浹背褐荷。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘹悼,地道東北人叛甫。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像杨伙,于是被迫代替她去往敵國和親其监。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容