django写博客第五章

1 这一章主要是介绍如何增加富文本编辑器的功能
1.1 为什么需要富文本编辑器:为了使得文本内容丰富多彩,格式也好看点呗
2 实现方法很多,我主要讲讲自己的方法,这个实在写博文时增加这个富文本功能:
2.1 下载kindeditor
KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。

作者:Ljian1992
链接:https://www.jianshu.com/p/d03297bf2d54
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
2.2下载地址: http://kindeditor.net/down.php,下载后解压,放在static目录下的js目录
2.2 定义ModelAdmin的媒体文件

class ArticleAdmin(admin.ModelAdmin):
    # fields = ('title', 'desc', 'content')
    list_display = ('title', 'desc', 'content', 'click_count')
    list_display_links = ('title', 'desc', 'content', )
    list_editable = ('click_count',)
    list_filter = ('title', 'content')  # 过滤器

    class Media:
        js = (
            '/static/js/kindeditor-4.1.11/kindeditor-all-min.js',
            '/static/js/kindeditor-4.1.11/lang/zh-CN.js',
            '/static/js/kindeditor-4.1.11/config.js',
        )

2.3 修改kindeditor的配置文件
具体做法: 在static/js/kindeditor-4.1.11目录下面创建一个config.js,并在里面写入相关代码:

KindEditor.ready(function(K) {
    K.editor = K.create('#id_content', {
        width:'500px',
        height:'360px',
    });
    });

我的理解是当要跳转到编写博文的页面时就会加载这个富文本所需的媒体文件,并且通过找到文本编辑区域,设置相应的宽高
这样就能成功了,看看下面截图:
这里写图片描述
3 虽然弄出来了,我并不高兴,因为感觉有点晕,我们还需要了解一下admin的运行原理
3.1 加载setting.py配置

INSTALLED_APPS = [
    'django.contrib.admin',
     xxxxx,
     xxxxx,
     xxxxx
     其他代码等等
]

3.2 寻找admin模块,django.contrib.admin的_init_.py中,Django自动去所有应用寻找admin.py模块,并执行

def autodiscover(): # autodiscover_modules 翻译一下就是自动搜索模块的意思
    autodiscover_modules('admin', register_to=site)

3.3 执行admin.py,注册model:
这里写图片描述

3.4 admin.site.register()中为site对象的_registry字典赋值,key是model, value是model的配置类(具体查看源码)

self._registry[model] = admin_class(model, self)

3.5 执行路由映射关系

from django.contrib import admin
from django.urls import path, re_path
from blog.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
]

再次调用site对象,执行.urls方法,循环site对象的_registry属性,根据app和model名称,生成Django后台管理的url映射。

3.6 我们在Django后台中执行的增删改查,其实就是执行了ModelAdmin中的以下方法:

def changelist_view() 显示列表
def add_view()增加
def change_view() 修改
def delete_view() 删除

我总结一下,就是,我们要进入后台管理即http://127.0.0.1:8000/admin/时, django会加载settings.pyl里面的django.contrib.admin,然后再寻找admin模块,接着就是在admin.py中注册model, 就是注册相应的类,然而我的这个类包含了实现富文本编辑器所需的一些文件,当执行url映射(相当于在浏览器输入网址,然后回车的意思)时,加载的时候这些文件就被加载到相应的页面了对吧,这样不就可以实现这个富文本编辑了?

欢迎批评指正,thanks

参考链接

https://blog.csdn.net/Ayhan_huang/article/details/78290224

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值