专栏首页从零开始学自动化测试python测试开发django-55.xadmin使用markdown

python测试开发django-55.xadmin使用markdown

前言

markdown是一个非常好的编辑器,用过的都说好,如果搭建一个博客平台的话,需要在后台做文章编辑,可以整合一个markdown的文本编辑器。 github上关于django的markdown插件很多的,看了半天也不知道选哪个好,本篇用django-mdeditor先试试

django-mdeditor

pip安装django-mdeditor

pip install django-mdeditor

在项目的settings.py的INSTALLED_APPS中添加’mdeditor’,

# Application definition

INSTALLED_APPS = [
    # ......
    'xadmin',            # 新添加
    'crispy_forms',      # 新添加
    'stdimage',          # 上传图片
    'mdeditor',       # markdown
]

然后设置图片等资源的存放media地址,之前配置过就不用重复配置了

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

urls.py设置访问地址

from django.conf.urls import url
from django.urls import include

urlpatterns = [

    url(r'mdeditor/', include('mdeditor.urls')),
]

models模型

在models.py中添加

from django.db import models
from mdeditor.fields import MDTextField   # 必须导入

class Blog(models.Model):
    '''博客管理'''
    title = models.CharField(max_length=10)
    content = MDTextField()    # 注意为MDTextField()

    def __str__(self):
        return self.__doc__ + "title->" + self.title

    class Meta:
        verbose_name = "博客发布"
        verbose_name_plural = verbose_name

xadmin.py中注册

import xadmin
from . import models

class BlogAdmin(object):
    list_display = ['title',]

xadmin.site.register(models.Blog, BlogAdmin)

配置好之后,执行 makemigrations 和migrate,同步数据

python manage.py makemigrations python manage.py migrate

实现效果

xadmin后台可以左侧输入,右边实时显示对应的效果

也可以支持本地图片上传

插入代码也可以支持

如果需要在前台显示的话,可以在views.py获取到数据库的数据后,使用markdown.markdown()修饰为html语句,然后传到前端显示

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang),作者:上海悠悠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python测试开发django-1.开始hello world!

    当你想走上测试开发之路,用python开发出一个web页面的时候,需要找一个支持python语言的web框架。django框架有丰富的文档和学习资料,也是非常成...

    上海-悠悠
  • python测试开发django-8 mysql环境安装

    MySQL 是最流行的关系型数据库管理系统,可以在本地搭建一个mysql的环境,便于学习。

    上海-悠悠
  • Selenium3+python自动化50-环境搭建(firefox)

    前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的。 安装环境过程中...

    上海-悠悠
  • 使用 EventSource 实现页面消息推送

    前段时间在考虑怎么把我们的自动部署工具 essay <https://github.com/SohuTech/essay>_ 包一层web的壳,这样每次发版就不...

    the5fire
  • 网站分析的重要指标及专业术语(收藏!)

    1.浏览数Page Views:网页(含文件及动态网页)被访客浏览的次数。Page View的计算范围包括了所有格式的网页,例如:.htm、.html、.asp...

    CDA数据分析师
  • 德鲁克用7段人生经历,告诉你如何突破自我

    一个人,特别是一个运用知识的人,要怎样才能取得成效?这样一个人,在生活与工作多年之后,在历经多年的变化之后,又要怎样才能一直保持成效? 有话说 ? 一个人,特别...

    Spark学习技巧
  • 第五节 - easyUI的基本使用1. 列表组件 datagrid 2. 按钮组件 linkbutton3.右下角弹窗组件 $.messager

    剽悍一小兔
  • 科幻大师:人工智能技术能否与人类组成命运共同体

    “假如未来是一辆高速行驶的汽车,人工智能是它的油门,那么是否存在一种技术,能在油门失控时作为刹车?” 大屏幕上,2015年雨果奖得主、中国当代最有影响力的科幻作...

    企鹅号小编
  • 网页端收消息,究竟是推还是拉?

    抛开这些技术细节不谈,暂且认为服务端对每一个用户都有一个“待收消息”的队列,里面存放了需要给这个用户的一切消息。

    架构师之路
  • 面向对象作业——校园管理系统

    2. 创建linux , python , go 3个课程 ,linux\py 在北京开,go 在上海开

    py3study

扫码关注云+社区

领取腾讯云代金券