评论
[从零开始Django] Admin使用MD编辑器,突破mdeditor上传图片无法显示

[从零开始Django] Admin使用MD编辑器,突破mdeditor上传图片无法显示

这段时间我摆烂躺平过,偶尔想爬起来奋斗当一次资本家的韭菜。岁末将至是那 马猴烧酒 封印了我能力。在圣诞老人来临之前我争取做一回韭黄

[从零开始Django] Admin使用MD编辑器,突破mdeditor上传图片无法显示

我曾尝试过Flask,FastApi等web框架,喜欢Flask的体积,爱上了FastApi的Json显示和文档。或者是因为的头发的劝说徘徊之后回到了Django

Django他自带梦回10年前的admin后台,对我来说还需要时间打磨。但如果可以REST framework 前后端半分离是我的追求

选择

会选择MD编辑器估计是因为他的风格,简约得让我们不用在特意留意排版,而专注内容输出

步骤

admin后台添加菜单

添加md编辑器

上传图片显示

admin菜单注册

前提是准备好一个Django项目可链接数据库,注册项目

项目下models文件中建立一个数据表

​from django.db import models
# Create your models here.
class WeChatSet(models.Model):
    """ 基本配置 """
    title = models.CharField(verbose_name='标题', max_length=32)
    conten = models.CharField(verbose_name='内容', max_length=32)

执行数据库迁移

Pycharm可以

[从零开始Django] Admin使用MD编辑器,突破mdeditor上传图片无法显示
makemigrations
migrate

或者默认手撸

python3.11 manage.py makemigrations
python3.11 manage.py migrate

建立超级管理员

python3.11 manage.py createsuperuser

项目下中的amind文件中注册后台菜单

from django.contrib import admin
from .models import *
admin.site.register(WeChatSet)

运行项目访问admin后台

python manage.py runserver 
​
http://127.0.0.1:8000/admin
[从零开始Django] Admin使用MD编辑器,突破mdeditor上传图片无法显示

添加md编辑器

安装django-mdeditor

pip install django-mdeditor

settings 配置文件 INSTALLED_APPS 中添加 mdeditor

INSTALLED_APPS = [
    # md文档
    'mdeditor'
]

settings 末尾添加媒体文件的路径配置

MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'
X_FRAME_OPTIONS = 'SAMEORIGIN'

项目 urls.py 中添加扩展url和媒体文件url

from django.contrib import admin
from django.urls import path, re_path
from django.conf.urls import include
from django.views.static import serve
from lingmu_admin.settings import MEDIA_ROOT
​
urlpatterns = [
    path('admin/', admin.site.urls),
    path('mdeditor/', include(('mdeditor.urls', 'mdeditor'), namespace='mdeditor')),  # 配置编辑器路由
    re_path(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}),  # 添加上传文件路径
]

(注意:导入的包是关键,mdeditor上传图片无法显示或者运行报错基本是该文件引起)

model中应用markdown

from django.db import models
# 引入md
from mdeditor.fields import MDTextField
# Create your models here.
class WeChatSet(models.Model):
    """ 基本配置 """
    title = models.CharField(verbose_name='标题', max_length=32)
    conten = MDTextField()

刷新后台添加内容可看到MD编辑器

[从零开始Django] Admin使用MD编辑器,突破mdeditor上传图片无法显示

总结

学习:距离富婆+ 9

头发:-3

经验:还没阳