[Django學習] Django基礎(8)_富文本編輯器

一. 簡單的文本編輯

# models.py
content = TextField()

  content在後臺頁面顯示的就是一個簡單的文本編輯器。若是想在前端頁面中實現諸如「換行」,「加粗」等樣式,可在相應部位直接添加HTML標籤,同時在前端的html文件中經過相應方式解析這些標籤。html

# blog_detail.html
<div class="blog-content">{{ blog.content|safe }}</div>

# blog_list.html
<p>{{ blog.content|striptags|truncatechars:200 }}</p>  

二. 富文本編輯

# models.py
content = RichTextField()

  content在後臺頁面中顯示的是一個富文本編輯器。它提供相似於 Microsoft Word 的編輯功能,用戶不須要編寫 HTML標籤,可直接根據須要設置各類文本格式。前端

三. 如何實現富文本編輯

(一)安裝django-ckeditor   

pip install django-ckeditor 

(二)配置settings.py

# 註冊應用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'ckeditor',
]

# 修正語言爲中文簡體('zh-hans')或者中文繁體('zh-Hans')
LANGUAGE_CODE = 'zh-hans'

(三)修改models.py

# models.py
from ckeditor.fields import RichTextField
content = RichTextField()

四. 實現圖片上傳功能

  常規的ckeditor沒有圖片上傳功能,所以須要爲其增長該功能。python

(一)安裝pillow

# 安裝pillow
pip install pillow

(二)配置setting.py

# 註冊應用
INSTALLED_APPS = [    
   'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'ckeditor',
    'ckeditor_uploader',
]

# 配置media, 保存須要存儲的文件
# 2-1.配置上傳的URL

MEDIA_URL = '/media/'

# 2-2.在mysite根目錄下新建一個文件夾「media」
# 2-3.配置文件上傳的路徑爲新建的文件夾

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

  

(三)配置urls.py

# 對應2-1,配置urls.py
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

(四)配置models.py

# 更新models.py中相應字段的數據類型
from ckeditor_uploader.fields import RichTextUploadingField

content = RichTextUploadingField()

(五)遷移數據

python manage.py makemigrations
python manage.py migrate

相關文章
相關標籤/搜索