django常用功能之三富文本功能

富文本编辑器

富文本编辑器,在web开发中可以说是不可缺少的。django并没有自带富文本编辑器,因此我们需要自己集成,富文本会让我的页面变的更加丰富。

下载

https://github.com/twz915/DjangoUeditor3/

安装

将下载的文件夹解压剪切到项目中与APP同级目录下:
在这里插入图片描述

进入到项目文件夹,运行下面命令

 python setup.py install

配置settings.py图片、视频上传相关参数配置;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 上传图片
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace("\\", "/")
MEDIA_URL = '/media/'

注册应用

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app.apps.AppConfig',
    'DjangoUeditor'
]

模型类

class News(models.Model):
    title = models.CharField(verbose_name='产品标题', max_length=20)
    Content = UEditorField(width=600, height=300, toolbars="full",
                           imagePath="news/%(basename)s_%(datetime)s.%(extname)s", filePath="files/")
    vnum = models.IntegerField(verbose_name='浏览量', default=100)
    is_top = models.BooleanField(verbose_name='是否置顶', default=False)
    is_show = models.BooleanField(verbose_name='是否展示', default=True)
    created_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
    updated_time = models.DateTimeField(verbose_name='更新时间', auto_now=True)

    class Meta:
        verbose_name = '新闻'
        verbose_name_plural = '新闻'

    def __str__(self):
        return self.title
  • width,height :编辑器的宽度和高度,以像素为单位。

  • imagePath* :图片上传后保存的路径,如"images/",实现上传到"{{MEDIA_ROOT}}/images"文件夹。 注意:如果imagePath值只设置文件夹,则未尾要有"/" imagePath可以按python字符串格式化:如"images/%(basename)s_%(datetime)s.%(extname)s"。这样如果上传test.png,则文件会 被保存为"{{MEDIA_ROOT}}/images/test_20191025122399.png"。 imagePath中可以使用的变量有:

字段描述说明
time上传时的时间datetime.datetime.now().strftime("%H%M%S")
date上传时的日期datetime.datetime.now().strftime("%Y%m%d")
datetime上传时的时间和日期datetime.datetime.now().strftime("%Y%m%d%H%M%S")
year
month
day
rnd三位随机数random.randrange(100,999)
basename上传的文件名称,不包括扩展名
extname上传的文件扩展名
filename上传的文件名全称
  • time :上传时的时间,datetime.datetime.now().strftime("%H%M%S")
  • date :上传时的日期,datetime.datetime.now().strftime("%Y%m%d")
  • datetime :上传时的时间和日期,datetime.datetime.now().strftime("%Y%m%d%H%M%S")
  • year : 年
  • month : 月
  • day : 日
  • rnd : 三位随机数,random.randrange(100,999)
  • basename : 上传的文件名称,不包括扩展名
  • extname : 上传的文件扩展名
  • filename : 上传的文件名全称

编写路由

from django.contrib import admin
from django.urls import path, include, re_path
from django.conf.urls.static import static
from django.views.static import serve

from django.conf import settings

urlpatterns = [
                  path('admin/', admin.site.urls),
                  path('', include(('app.urls', 'app'), namespace='app')),
                  path('ueditor/', include('DjangoUeditor.urls')),
              ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

报错解决

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gppD8Ir2-1585479196146)(http://tp.jikedaohang.com/20191214215939_M5BmnU_Screenshot.jpeg)]

在管理后台添加数据

编写模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .center {
            text-align: center;
        }

    </style>
</head>

<body>

<div class="center">
    <h1>{{ news.title }}</h1>
    {{ news.Content|safe }}

</div>

</body>
</html>

结果展示

启动服务器,使用管理员账号和密码,登录后台地址
localhost:8000/admin;至此既可以愉快的使用富文本进行内容的编辑了。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Django文本编辑器可以通过使用第三方库和插件来实现上传功能常用的方法是使用django-ckeditor库或django-tinymce库来集成文本编辑器以及上传功能。 首先,在Django项目中安装所需的库,可以通过在终端中运行以下命令安装库: ```python pip install django-ckeditor pip install django-tinymce ``` 安装完成后,需要在Django的设置文件中进行相应的配置。对于django-ckeditor库,需要将以下内容添加到settings.py中的INSTALLED_APPS和STATIC_URL中: ```python INSTALLED_APPS = [ ... 'ckeditor', ] STATIC_URL = '/static/' STATICFILES_DIRS = [ ... os.path.join(BASE_DIR, 'static') ] ``` 对于django-tinymce库,需要将以下内容添加到settings.py中的INSTALLED_APPS和STATIC_URL中: ```python INSTALLED_APPS = [ ... 'tinymce', ] STATIC_URL = '/static/' STATICFILES_DIRS = [ ... os.path.join(BASE_DIR, 'static') ] ``` 然后,需要在urls.py文件中添加相应的URL配置。对于django-ckeditor库,可以添加以下代码: ```python from django.contrib import admin from django.urls import include, path from django.conf import settings from django.conf.urls.static import static from ckeditor_uploader import views as ckeditor_views urlpatterns = [ ... path('ckeditor/', include('ckeditor_uploader.urls')), path('admin/', admin.site.urls), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ``` 对于django-tinymce库,可以添加以下代码: ```python from django.contrib import admin from django.urls import include, path from django.conf import settings from django.conf.urls.static import static from tinymce import views as tinymce_views urlpatterns = [ ... path('tinymce/', include('tinymce.urls')), path('admin/', admin.site.urls), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ``` 最后,还需要进行一些前端和后端的配置。具体可以参考文档或库的使用说明来实现上传功能。 以上就是使用Python Django文本编辑器实现上传功能的简要步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值