栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

ckeditor富文本编辑器(Django 3.2)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ckeditor富文本编辑器(Django 3.2)

安装ckeditor

pip install django-ckeditor

如图:

 安装pillow

pillow是python的一个图像处理库

pip install pillow

如图:

 在项目seetings.py中配置ckeditor

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'ckeditor',
    'ckeditor_uploader',
]

媒体文件配置并在项目根目录创建media文件夹

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(base_DIR, "media")
CKEDITOR_UPLOAD_PATH = 'upload/'

同样在项目urls.py中配置

from django.conf import settings
from django.conf.urls.static import static
from django.urls import path, include


urlpatterns = [
    path('ckeditor/', include('ckeditor_uploader.urls')),
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

创建app

django-admin.py startapp user
django-admin.py startapp index

接下来在 settings.py 中找到INSTALLED_APPS这一项,如下:

INSTALLED_APPS = [
    'user',
    'index',
]

在APP里分别新建urls.py并修改项目的urls.py

urlpatterns = [
    path('', include('index.urls')),
    path('user/',include('user.urls')),
]

在user.models.py创建模型

from django.db import models
from django.contrib.auth.models import AbstractUser

class Admin(AbstractUser):
    nickname = models.CharField('昵称', max_length=10)
    phone = models.CharField('手机', max_length=20)
    mail = models.CharField('邮箱', max_length=20)
    createDate = models.DateField('创建时间', auto_now_add=True)

在index.models.py创建模型

class Blog(models.Model):
    title = models.CharField(max_length=50)
    author = models.ForeignKey(Admin, on_delete=models.CASCADE, verbose_name='作者')
    createdTime = models.DateTimeField('发布时间', auto_now_add=True)
    content=RichTextUploadingField(verbose_name='正文')

    class meta:
        verbose_name = '文章'
        verbose_name_plural = '文章'

    def __str__(self):
        return self.title

在项目MyBlog.setting.py中添加自定义用户模型

AUTH_USER_MODEL = 'user.Admin'

数据库迁移

python manage.py makemigrations   # 让 Django 知道我们在我们的模型有一些变更
python manage.py migrate # 创建表结构

创建admin超级用户

# python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: admin@runoob.com
Password:
Password (again):
Superuser created successfully.

在项目根目录创建templates

login.html





  {% load static %}
  
  登录
  
  
  
  
  
  




  

    
      
        系统登录
      

      
        
{% csrf_token %} 忘记密码?

© 2018

addBlog.html




    {% load static %}
    
    Ckeditor编辑器
    



    
{% csrf_token %} {{ blogForm.content }} {{ blogForm.media }} {{ blogForm.body }}

在index.admin.py注册模型

from django.contrib import admin
from index.models import Blog

@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
    list_display = ('title','content')
    fields = ('title','content')

前端使用ckeditor需要用到django的forms,在index应用里新建一个forms.py

from ckeditor_uploader.widgets import CKEditorUploadingWidget
from django import forms
from index.models import Blog

class BlogForm(forms.ModelForm):
    content=forms.CharField(widget=CKEditorUploadingWidget,label='详情',required=True)

    class meta:
        model=Blog
        fields = "__all__"

index.views.py编写登录、发表博客视图函数

from index.models import Blog
from user.models import Admin

def loginView(request):
    return render(request, 'login.html')

def addBlogView(request):
    blogForm=BlogForm()
    return render(request, 'addBlog.html',{'blogForm':blogForm})

编辑index.urls

urlpatterns = [
    path('login/', views.loginView),
    path('addBlog/', views.addBlogView),
]

登录验证视图函数user.views

from django.contrib import auth
from django.shortcuts import render, redirect

def loginCheckView(request):
    username = request.POST['username']
    password = request.POST['password']
    user = auth.authenticate(username=username, password=password)
    if not user:
        res = 'fail'
        return render(request, 'login.html', locals())
    else:
        auth.login(request, user)
        res = 'ok'
        request.session['user'] = username
        return redirect("/user")

编辑user.urls

urlpatterns = [
    path('loginCheck/', views.loginCheckView),
]

使用超级用户登录后台

 添加博客

上传图片

成功插入图片

 打开项目media文件夹下的upload

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号