Django 第三方引用富文本编辑器6.1

举报
Lansonli 发表于 2021/09/29 01:24:34 2021/09/29
【摘要】 借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员此处以tinymce为例,其它富文本编辑器的使用可以自行学习使用编辑器的显示效果为:   下载安装 在网站pypi网站搜索并下载"django-tinymce-2.4.0"解压 tar zxvf...
  • 借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员
  • 此处以tinymce为例,其它富文本编辑器的使用可以自行学习
  • 使用编辑器的显示效果为:

 

下载安装

  • 在网站pypi网站搜索并下载"django-tinymce-2.4.0"
  • 解压
tar zxvf django-tinymce-2.4.0.tar.gz

 
  • 进入解压后的目录,工作在虚拟环境,安装
python setup.py install

 

应用到项目中

  • 在settings.py中为INSTALLED_APPS添加编辑器应用

  
  1. INSTALLED_APPS = (
  2. ...
  3. 'tinymce',
  4. )
  • 在settings.py中添加编辑配置项

  
  1. TINYMCE_DEFAULT_CONFIG = {
  2. 'theme': 'advanced',
  3. 'width': 600,
  4. 'height': 400,
  5. }
  • 在根urls.py中配置

  
  1. urlpatterns = [
  2. ...
  3. url(r'^tinymce/', include('tinymce.urls')),
  4. ]
  • 在应用中定义模型的属性

  
  1. from django.db import models
  2. from tinymce.models import HTMLField
  3. class HeroInfo(models.Model):
  4. ...
  5. hcontent = HTMLField()
  • 在后台管理界面中,就会显示为富文本编辑器,而不是多行文本框

自定义使用

  • 定义视图editor,用于显示编辑器并完成提交

  
  1. def editor(request):
  2. return render(request, 'other/editor.html')
  • 配置url

  
  1. urlpatterns = [
  2. ...
  3. url(r'^editor/$', views.editor, name='editor'),
  4. ]
  • 创建模板editor.html

  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <script type="text/javascript" src='/static/tiny_mce/tiny_mce.js'></script>
  6. <script type="text/javascript">
  7. tinyMCE.init({
  8. 'mode':'textareas',
  9. 'theme':'advanced',
  10. 'width':400,
  11. 'height':100
  12. });
  13. </script>
  14. </head>
  15. <body>
  16. <form method="post" action="/content/">
  17. <input type="text" name="hname">
  18. <br>
  19. <textarea name='hcontent'>哈哈,这是啥呀</textarea>
  20. <br>
  21. <input type="submit" value="提交">
  22. </form>
  23. </body>
  24. </html>
  • 定义视图content,接收请求,并更新heroinfo对象

  
  1. def content(request):
  2. hname = request.POST['hname']
  3. hcontent = request.POST['hcontent']
  4. heroinfo = HeroInfo.objects.get(pk=1)
  5. heroinfo.hname = hname
  6. heroinfo.hcontent = hcontent
  7. heroinfo.save()
  8. return render(request, 'other/content.html', {'hero': heroinfo})
  • 添加url项

  
  1. urlpatterns = [
  2. ...
  3. url(r'^content/$', views.content, name='content'),
  4. ]
  • 定义模板content.html

  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. </head>
  6. <body>
  7. 姓名:{{hero.hname}}
  8. <hr>
  9. {%autoescape off%}
  10. {{hero.hcontent}}
  11. {%endautoescape%}
  12. </body>
  13. </html>

文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。

原文链接:lansonli.blog.csdn.net/article/details/102651632

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。