django-富文本编辑器
富文本编辑器
- 借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员
- 此处以tinymce为例,其它富文本编辑器的使用可以自行学习
- 使用编辑器的显示效果为:

下载安装
进入虚拟环境安装包:pip install django-tinymce
应用到项目中
- 在settings.py中为INSTALLED_APPS添加编辑器应用
INSTALLED_APPS = (
...
'tinymce',
)
- 在settings.py中添加编辑配置项
TINYMCE_DEFAULT_CONFIG = {
'theme': 'advanced',
'width': 600,
'height': 400,
}
- 在根urls.py中配置
urlpatterns = [
...
url(r'^tinymce/', include('tinymce.urls')),
]
- 在应用中定义模型的属性,并完成数据迁移
1 from django.db import models 2 from tinymce.models import HTMLField 3 class TextTest(models.Model): 4 hcontent=HTMLField()
- 在应用内admin.py文件完成注册,就可以在后台管理中维护模型的数据
1 from django.contrib import admin 2 from .models import * 3 4 admin.site.register(TextTest)
- 在后台管理界面中,就会显示为富文本编辑器,而不是多行文本框
![]()
自定义使用
- 定义视图views.py
1 #----自定义富文本编辑器--- 2 def content(request): 3 return render(request,'booktest/content.html') 4 5 def content_handle(request): 6 htmltext = request.POST['hcontent'] # 获取页面表单提交hcontent的值 7 #修改字段值 8 # data = TextTest.objects.get(pk=1) #获取数据库TextTest主键为1的对象 9 # data.hcontent=htmltext 10 # data.save() #将修改字段值保存至数据库 11 #新增字段值 12 data=TextTest() 13 data.hcontent=htmltext 14 data.save() 15 context={'htmltext':htmltext} 16 return render(request,'booktest/content_handle.html',context)
- 配置url
1 from django.conf.urls import url,include 2 from . import views 3 4 urlpatterns = [ 5 url(r'^content/$',views.content), 6 url(r'^content_handle/$',views.content_handle), 7 ]
- 创建模板content.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>content</title> 6 7 <script type="text/javascript" src='/static/tiny_mce/tiny_mce.js'></script> <!--这里引入的是自动找的django-tinymce包里的文件--> 8 <script type="text/javascript"> <!--重新定义textarea标签,将textarea标签改为富文本格式--> 9 tinyMCE.init({ 10 'mode':'textareas', 11 'theme':'advanced', 12 'width':400, 13 'height':100 14 }); 15 </script> 16 </head> 17 <body> 18 <form action="/content_handle/" method="post"> 19 {% csrf_token %} 20 <h4>请输入文本</h4> 21 <textarea name="hcontent" id="" cols="30" rows="10"></textarea> 22 <br> 23 <input type="submit" value="提交"> 24 </form> 25 </body> 26 </html>
- 创建模板content_handle.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 {{htmltext|safe}} <!--对于变量使用safe过滤器,关闭转义--> 9 10 </body> 11 </html>


![]()
posted on 2020-02-02 13:40 cherry_ning 阅读(369) 评论(0) 收藏 举报


浙公网安备 33010602011771号