Django中summernote富文本编辑器完整前后端

summernote富文本编辑器,由于网上的基本都是在说用这个编辑器上传图片的,所以我就整理了一下上传图片和文本的代码,完整前后端。

这里我准备了一个demo,需要的可以直接复制

Summernote

这是富文本编辑器的效果图
在这里插入图片描述
下面附上js代码,包括提交图片和文本

{% csrf_token %}
提交

接下里是Django后端的接收代码

from django.shortcuts import render,redirect,HttpResponse
from django.contrib.auth.decorators import login_required
from django.views.decorators.csrf import csrf_exemp

@login_required
@csrf_exempt
def text(request):
# 获取富文本编辑器中的数据
if request.method == “POST”:
title = request.POST.get(‘title’)
print(title)
content = request.POST.get(‘content’)
print(content)
return render(request,‘index.html’)

上传图片

@login_required
@csrf_exempt
def instantuploa(request):
if request.method == ‘POST’:
# 拿到图片对象
content_img = request.FILES[‘file’]
# 判断图片大小
if content_img.size/1024/1024 < 2:
# 判断图片格式是否为规定的格式
if content_img.content_type == ‘image/jpeg’ or content_img.content_type == ‘image/jpg’ or content_img.content_type == ‘image/png’:
# 获取当前结构化时间用于拼接图片名称
nowtime = datetime.datetime.now().strftime(’%Y%m%d%H%S’)
# 创建一个文件
path = os.path.join(settings.MEDIA_ROOT,nowtime + content_img.name)
# 写文件 遍历图片文件流
with open(path, ‘wb’) as f:
for content in content_img.chunks():
f.write(content)
# 关闭文件流
f.close()
# 拼接文件名和路径
user_img = ‘图片存放的路径{}’.format(nowtime + content_img.name)
# 返回图片路径
response = {
“status”: 1,
“message”: “上传成功”,
‘file’: user_img,
}
return HttpResponse(json.dumps(response))

        else:
            response={
                "status": 0,
                "message": "只能上传jpeg、jpg、png格式的图片!",
            }
            return HttpResponse(json.dumps(response))
    else:
        response = {
            "status": 0,
            "message": "图片超过了2M!",
        }
        return HttpResponse(json.dumps(response))

图片上传的具体设置步骤请参考:https://blog.csdn.net/weixin_45457042/article/details/103975741
希望对您有所帮助。有疑问可以留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django_celery_beat是一个django应用程序,它允许您使用celery定期运行周期性任务。这些周期性任务可以是一次性的或循环的,你可以设置它们在指定的时间间隔内自动运行,也可以设置它们在特定的时间运行。 要使用django_celery_beat,请按照以下步骤操作: 1. 安装django_celery_beat: ``` pip install django_celery_beat ``` 2. 在settings.py添加以下代码: ``` INSTALLED_APPS = [ # ... 'django_celery_beat', ] CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler' ``` 3. 在项目的urls.py文件添加以下代码: ``` from django.urls import path from django_celery_beat.views import ( PeriodicTaskListView, PeriodicTaskCreateView, PeriodicTaskUpdateView, PeriodicTaskDeleteView, PeriodicTaskDetailView, ) urlpatterns = [ # ... path('celery/periodic-tasks/', PeriodicTaskListView.as_view(), name='periodic_task_list'), path('celery/periodic-task/add/', PeriodicTaskCreateView.as_view(), name='periodic_task_create'), path('celery/periodic-task/<int:pk>/', PeriodicTaskDetailView.as_view(), name='periodic_task_detail'), path('celery/periodic-task/<int:pk>/update/', PeriodicTaskUpdateView.as_view(), name='periodic_task_update'), path('celery/periodic-task/<int:pk>/delete/', PeriodicTaskDeleteView.as_view(), name='periodic_task_delete'), ] ``` 4. 在celery.py文件添加以下代码: ``` from celery import Celery from django.conf import settings app = Celery('my_project') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) ``` 5. 在tasks.py文件创建您的任务,例如: ``` from celery import shared_task @shared_task def my_task(): # Do something here ``` 6. 创建周期性任务,您可以使用Django admin或创建它们的视图。 现在,您已经可以在django使用celery定期运行周期性任务了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值