亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁(yè) > 知識(shí)庫(kù) > Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟

Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟

熱門(mén)標(biāo)簽:市場(chǎng)上的電銷(xiāo)機(jī)器人 地圖標(biāo)注面積 北瀚ai電銷(xiāo)機(jī)器人官網(wǎng)手機(jī)版 儋州電話機(jī)器人 朝陽(yáng)手機(jī)外呼系統(tǒng) 佛山400電話辦理 北京電銷(xiāo)外呼系統(tǒng)加盟 小蘇云呼電話機(jī)器人 所得系統(tǒng)電梯怎樣主板設(shè)置外呼

提到Django的富文本編輯器,大家一定會(huì)想到ckeditor和tinyMCE。其實(shí)還是有一個(gè)富文本編輯器同樣優(yōu)秀,它就是summernote,個(gè)人認(rèn)為功能上不遜于ckeditor,比tinyMCE更強(qiáng)大。Summernote 是一個(gè)簡(jiǎn)單靈活的所見(jiàn)即所得的 HTML 富文本編輯器,基于 jQuery 和 Bootstrap 構(gòu)建,支持圖片上傳,提供了大量可定制的選項(xiàng)。

展示效果如下所示:

第一步 安裝django-summernote

首先通過(guò)pip安裝django-summernote,建議安裝在Django項(xiàng)目所在的虛擬環(huán)境里。如果你要上傳圖片,還需要安裝pillow這個(gè)圖片庫(kù)。

pip install django-summernote
pip install pillow # 上傳圖片時(shí)需要

接著將其加入到INSTALLED_APPS里去,如下所示:

INSTALLED_APPS = [
    ...
    'django_summernote', # 注意下劃線
]

然后將django_summernote.urls 加入到項(xiàng)目的 urls.py

from django.urls import include
# ...
urlpatterns = [
    ...
    path('summernote/', include('django_summernote.urls')),
    ...
]

如果你需要上傳圖片,還需要在settings.py中設(shè)置MEDIA相關(guān)選項(xiàng),如下所示。如果你Django的版本是3.x的,你還需設(shè)置X_FRAME_OPTIONS選項(xiàng)。

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

# Django 3.X用戶(hù)還需增加如下配置
X_FRAME_OPTIONS = 'SAMEORIGIN'

如果你在本地開(kāi)發(fā)測(cè)試環(huán)境debug=True, 你還需要使用django自帶static靜態(tài)文件服務(wù)器才能正確顯示上傳的圖片。修改項(xiàng)目的urls.py, 添加如下代碼:

from django.conf import settings
from django.conf.urls.static import static

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

第二步 使用django-summernote

你可以在Django自帶管理后臺(tái)admin中使用django-summernote, 也可以在自己的表單中使用django-summernote。

admin中使用

from django_summernote.admin import SummernoteModelAdmin
from .models import Post

class PostAdmin(SummernoteModelAdmin):
    summernote_fields = ('content',)

admin.site.register(Post, PostAdmin)

展示效果如下所示:

表單中使用

如果你使用普通表單,只需要設(shè)置富文本顯示字段的widget即可,如下所示:

from django_summernote.widgets import SummernoteWidget, SummernoteInplaceWidget

# Apply summernote to specific fields.
class PostForm(forms.Form):
    content = forms.CharField(widget=SummernoteWidget())  # instead of forms.Textarea

# 如果你已使用django-crispy-forms, 請(qǐng)使用
class PostForm(forms.Form):
    content = forms.CharField(widget=SummernoteInplaceWidget())

如果你使用ModelForm, 可以通過(guò)如下方式設(shè)置widget。

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        widgets = {
            'content': SummernoteWidget(),
        }

注意:通過(guò)表單提交的內(nèi)容都是帶html標(biāo)簽的,需正確顯示文本,需要使用safe模板標(biāo)簽。

{{ content|safe }}
由于SummernoteWidget對(duì)用戶(hù)提交的數(shù)據(jù)不做任何轉(zhuǎn)義,所以存在外部用戶(hù)通過(guò)表單注入惡意腳本的風(fēng)險(xiǎn),小編并不建議使用。在表單中使用django-summernote更好的方式是使用SummernoteTextFormField和SummernoteTextField,它們會(huì)對(duì)所有有害的標(biāo)簽進(jìn)行轉(zhuǎn)義。使用方式如下所示:

第三步 測(cè)試效果

Djangos-summernote不僅可以上傳圖片,還可以嵌入視頻哦,親測(cè)成功!

第四步 常規(guī)配置

常用設(shè)置選項(xiàng)如下所示,可以滿足大部分項(xiàng)目需求,可以直接copy使用。

SUMMERNOTE_CONFIG = {
    'iframe': True,
    # 如果你本身已使用Bootstrap/jQuery主題
    # 'iframe': False,
    'summernote': {
        # As an example, using Summernote Air-mode
        'airMode': False,
        
        # 編輯窗口 size
        'width': '100%',
        'height': '450',

        # 語(yǔ)言設(shè)置
        'lang': None,

        # 工具欄圖標(biāo)
        # https://summernote.org/deep-dive/#custom-toolbar-popover
        'toolbar': [
            ['style', ['style',]],
            ['font', ['bold', 'underline', 'clear']],
            ['fontname', ['fontname']],
            ['fontsize', ['fontsize']],
            ['color', ['color']],
            ['para', ['ul', 'ol', 'paragraph']],
            ['table', ['table']],
            ['insert', ['link', 'picture', 'video']],
            ['view', ['redo', 'undo', 'fullscreen', 'codeview',]],
        ],
    },

    # 上傳圖片需要用戶(hù)先登錄.
    'attachment_require_authentication': True,

    # Set `upload_to` function for attachments.
    # 'attachment_upload_to': my_custom_upload_to_func(),

    # Set custom storage class for attachments.
    # 'attachment_storage_class': 'my.custom.storage.class.name',
    
    # You can completely disable the attachment feature.
    'disable_attachment': False,
    
    # Set to `True` to return attachment paths in absolute URIs.
    'attachment_absolute_uri': False,
    
    # test_func in summernote upload view. (Allow upload images only when user passes the test)
    # https://docs.djangoproject.com/en/2.2/topics/auth/default/#django.contrib.auth.mixins.UserPassesTestMixin
    # ```
    # def example_test_func(request):
    #     return request.user.groups.filter(name='group_name').exists()
    # ```
    # 'test_func_upload_view': example_test_func,
    
    # 懶加載
    'lazy': True,
}

以上就是Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于Django集成富文本編輯器summernote的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Django之choices選項(xiàng)和富文本編輯器的使用詳解
  • Django在admin后臺(tái)集成TinyMCE富文本編輯器的例子
  • django富文本編輯器的實(shí)現(xiàn)示例
  • Django添加KindEditor富文本編輯器的使用
  • Django框架使用富文本編輯器Uedit的方法分析
  • django輕松使用富文本編輯器CKEditor的方法
  • Django集成百度富文本編輯器uEditor攻略

標(biāo)簽:酒泉 商丘 定西 寧夏 江蘇 云南 金融催收 龍巖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟》,本文關(guān)鍵詞  Django,集成,富,文本,編輯器,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日本特黄特黄aaaaa大片| 中文字幕一区二区三区 精品| 美女免费精品高清毛片在线视| 999精品在线| 一级毛片视频在线观看| 日韩专区一区| 人人干人人草| 韩国三级视频网站| 国产精品自拍在线观看| 日韩在线观看视频网站| 四虎影视库| 日韩在线观看免费| 精品国产一区二区三区国产馆| 欧美激情伊人| 四虎影视久久久| 四虎论坛| 九九精品久久| 日本特黄特色aaa大片免费| 99热精品一区| 91麻豆精品国产片在线观看| 国产91精品露脸国语对白| 91麻豆爱豆果冻天美星空| 色综合久久手机在线| 四虎精品在线观看| 精品视频一区二区| 黄视频网站免费看| 黄视频网站免费观看| 美女免费毛片| 国产一区免费观看| 国产精品免费久久| 日本免费看视频| 久久国产一区二区| 日本免费区| 久久国产影院| 高清一级毛片一本到免费观看| 国产不卡在线观看视频| 欧美另类videosbestsex| 久久久成人网| 九九免费精品视频| 亚欧乱色一区二区三区| 青青久久精品| 日韩中文字幕一区| 亚洲第一页乱| 国产a毛片| 亚洲精品影院久久久久久| 久久精品道一区二区三区| 国产不卡在线看| 九九干| 中文字幕一区二区三区 精品| 深夜做爰性大片中文| 91麻豆爱豆果冻天美星空| 国产美女在线观看| 日本免费乱理伦片在线观看2018| 国产精品自拍亚洲| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 色综合久久天天综线观看| 韩国毛片基地| 精品视频在线观看一区二区| 九九精品在线| 国产高清视频免费| 国产精品自拍在线观看| 麻豆网站在线看| a级黄色毛片免费播放视频| 亚州视频一区二区| 国产国产人免费视频成69堂| 天天做日日爱夜夜爽| 美女免费精品视频在线观看| 久久99中文字幕| 亚洲 国产精品 日韩| 国产伦理精品| 欧美激情一区二区三区在线 | 国产激情视频在线观看| 国产韩国精品一区二区三区| 深夜做爰性大片中文| 久久成人亚洲| 欧美激情一区二区三区视频| 久久久久久久免费视频| a级毛片免费观看网站| 精品国产一区二区三区久久久狼| 99色视频在线观看| 免费的黄色小视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产视频久久久| 免费的黄色小视频| 久久国产精品自由自在| 国产91精品露脸国语对白| 国产a视频| 中文字幕Aⅴ资源网| 国产91视频网| 国产亚洲精品aaa大片| 九九精品在线播放| 亚洲第一色在线| 国产一级生活片| 免费国产在线观看不卡| 二级片在线观看| 可以免费看污视频的网站| 成人免费高清视频| 91麻豆高清国产在线播放| 美女免费毛片| 亚洲精品中文字幕久久久久久| 国产a视频| 九九精品在线播放| 久久成人亚洲| 一本伊大人香蕉高清在线观看| 亚洲天堂一区二区三区四区| 天天色色色| 99久久精品国产麻豆| 国产一区二区精品| 日韩一级精品视频在线观看| 日韩免费在线观看视频| 一级毛片视频免费| 黄色福利| 国产a视频| 国产91素人搭讪系列天堂| 国产成人欧美一区二区三区的| 精品国产一区二区三区精东影业 | 亚洲 欧美 91| 亚洲 国产精品 日韩| 精品毛片视频| 韩国三级视频网站| 国产不卡精品一区二区三区| 日韩在线观看免费完整版视频| 日日夜人人澡人人澡人人看免| 日本伦理片网站| 色综合久久天天综合观看| 日韩在线观看视频网站| 国产一级强片在线观看| 一级女性全黄久久生活片| 沈樵在线观看福利| 久久精品免视看国产成人2021| 国产成+人+综合+亚洲不卡| 一本高清在线| 久久久久久久久综合影视网| 国产成人精品影视| 久久精品欧美一区二区| 色综合久久手机在线| 日本在线不卡视频| 尤物视频网站在线| 精品视频一区二区三区免费| 黄视频网站免费| 一级女性全黄久久生活片| 久久福利影视| 日韩欧美一二三区| 青青久在线视频| 国产网站在线| 久久精品大片| 日韩免费片| 日韩免费在线观看视频| 国产伦精品一区二区三区无广告| 免费一级生活片| 久久精品大片| 久久99中文字幕| 韩国三级一区| 精品视频在线观看视频免费视频| 日本免费区| 99色视频在线| 中文字幕一区二区三区 精品| 日韩一级黄色| 精品国产三级a∨在线观看| 亚洲 男人 天堂| 天天做日日干| 国产高清在线精品一区a| a级黄色毛片免费播放视频| 可以免费看毛片的网站| 九九免费高清在线观看视频| 亚洲天堂免费观看| 999久久狠狠免费精品| 高清一级片| 久久99中文字幕| 国产原创中文字幕| 香蕉视频一级| 天天色成人| 日韩专区第一页| 久久精品欧美一区二区| 日本免费看视频| 毛片电影网| 亚欧成人乱码一区二区| 午夜家庭影院| 成人影视在线观看| 欧美大片毛片aaa免费看| 韩国妈妈的朋友在线播放| 高清一级毛片一本到免费观看| 欧美电影免费| 国产a视频| 欧美日本二区| 久久久成人网| 精品视频免费看| 中文字幕一区二区三区精彩视频| 国产麻豆精品视频| 日本在线不卡视频| 日韩一级黄色| 精品久久久久久中文字幕2017| 亚洲www美色| 国产麻豆精品hdvideoss| a级毛片免费观看网站| 亚州视频一区二区| 国产a网| 久草免费在线视频| 91麻豆爱豆果冻天美星空| 国产91素人搭讪系列天堂|