simpleui、mdeditor、mistune、置顶+分页

django博客开发中遇到的一些小功能

带有置顶功能的分页器

直接查询出所有文章的QuerySet然后按添加时间倒序排序,直接进入分页器。这样会没有置顶功能。

  1. 事先过滤出is_commend置顶文章,把器添加时间置为2099年,之后按时间倒序排序。但是这样前段显示时间又成了问题。试了联合查询也未能实现。
  2. 我直接增加了一个更新时间字段,把置顶文章显示它的更新时间。
  3. 解决不完美,待后期完善。

simpleui

快速定制django后台

  1. 安装

    pip install django-simpleui
    
  2. 使用

    # settings.py中注册simpleui
    INSTALLED_APPS = [
        'simpleui',  # 必须在第一个
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
        'mdeditor',
    ]
    

    执行 makemigrations

    ​ migrate

  3. 访问后台即可看到效果

mdeditor

后台输入框为富文本编辑器

  1. 安装

    pip install django-mdeditor
    
  2. 使用

    settings.py中注册simpleui

    # settings.py中注册mdeditor
    INSTALLED_APPS = [
        'simpleui',  # 必须在第一个
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
        'mdeditor',
    ]
    

    models.py中导入

    from mdeditor.fields import MDTextField
    

    表中子段

    content = MDTextField(verbose_name='文章内容')  # 富文本编辑框,要在models中注册mdeditor
    
  3. 访问即可

mistune

前段渲染Markdown文本编辑器

  1. 安装

    pip install mistune
    
  2. 使用

    view.py中模板渲染

    class ArticleView(View):
    
        def get(self, request, article_id=None):
            article = models.Article.objects.get(pk=article_id)
            article.viewed()  # 增加阅读数
            mk = mistune.Markdown()
            output = mk(article.content)
    
            # 文章分类
            categories = models.Category.objects.all()
    
            return render(request, 'datail.html', {
          
          'article': article, 'detail_html': output, 'categories': categories,})
    

猜你喜欢

转载自blog.csdn.net/qq_31910669/article/details/114595621