Django 快速搭建博客 第十一节

作者: 简书用户9527 | 来源:发表于2017-11-28 22:49 被阅读29次

这一节主要做一些修补工作,一个是:文章阅读量的统计,另一个是自动生成文章摘要内容

1 . 文章阅读量的统计:

1 文章阅读量的统计,我们需要在model下的Post类中新加入一个views 字段用来统计文章被阅读的数量,

/blog/models.py

    # 阅读数(>0的数)
    views = models.PositiveIntegerField(default=0)
    # 增加阅读数的方法
    def increase_views(self):
        self.views +=1
        # update_fields 只更新数据库中的views
        self.save(update_fields=['views'])

如图:


views阅读量字段.png

解释一下:PositiveIntegerField方法是一个不可能为负数的方法,这里我们默认传入0,
我们又写了一个方法,使得每次调用增加一次views,然后保存到数据库中,这里只进行更新数据库中【‘views’】的字段。

2 ,(修改视图函数)当我们每次访问detail.html即文章详情页的时候,就调用一次increase_views():方法

/blog/views.py

views增加.png

3 , (在模板中显示)在相应的index.html 和detail.html文件中进行数据的显示

/index.html

index.html.png

detail.html

detail.html.png

4 , 进行数据库的更新:

python manage.py makemigrations
python manage.py migrate

重新运行一下服务器

带有阅读数的index.html.png

2 文章摘要内容的自动生成

1 , 不知道大家还有没有记住excerpt 这个字段,也是存在Post类的字段,这里之前我们没有做任何处理,现在我们稍微做一下处理,

excerpt = models.CharField(max_length=200, blank=True)
在/blog/models.py文件

    # 重写保存的方法
    def save(self,*args,**kwargs):
        # 如果没有摘要,则从body中取一部分
        if not self.excerpt:
            # 实例化md,用于渲染body文本
            md = markdown.Markdown(extensions=[
                'markdown.extensions.extra',
                'markdown.extensions.codehilite',
            ])

            # 将md文本渲染成html
            # strip_tags 去掉html文本的全部html标签
            # 摘取body前54个给excerpt
            self.excerpt = strip_tags(md.convert(self.body))[:54]

        # 调用父类的保存方法保存到数据库中
        super(Post,self).save(*args,**kwargs)

这里的方法是先将md文本渲染成html,用md.convert方法渲染,然后再取前54个给excerpt,最后保存到数据库中

2, 在适当的方法使用模板标签进行引用

/blog/index.html

<div class="entry-content clearfix">
                <p> {{ post.excerpt }}...</p>
                <div class="read-more cl-effect-14">
                    <a href="{{ post.get_absolute_url }}" class="more-link">继续阅读 <span class="meta-nav">→</span></a>
                </div>
            </div>

如下图:


index.html.png

我们在后台创建文章,然后不填摘要,就会截取一段文章内容的作为摘要

index.html.png

这样我们就把阅读量统计与文章摘要给做完了,下一节,可能写的比较少,但是理解起来也不容易,用多了也就知道怎么用了。

相关文章

  • Django 快速搭建博客 第十一节

    这一节主要做一些修补工作,一个是:文章阅读量的统计,另一个是自动生成文章摘要内容 1 . 文章阅读量的统计: 1 ...

  • Django快速搭建博客 第一节

    一:安装python,安装django,使用虚拟环境 Virtualenv(此处我们暂时不用该环境) 二:运行dj...

  • Python学习笔记-第十八天

    Django官方学习笔记Django快速搭建blogrunoob Django教程vim python搭建1vim...

  • Django 2.0 快速搭建博客

    本文仅是用于操作记忆,长时间不用容易忘记,本来是打算云笔记里写好自己看的,可是云笔记里markdown图片比较麻烦...

  • Django快速搭建博客(六)

    在此之前我们已经编写了 Blog 的首页视图,并且配置了 URL 和模板,让 Django 能够正确地处理 HTT...

  • Django快速搭建博客(三)

    创建 Django 博客的数据库模型 设计博客的数据库表结构 博客最主要的功能就是展示文章,它需要从某个地方获取博...

  • Django快速搭建博客(一)

    开发环境的系统平台为 Windows 7 (64 位),Python 版本为 3.5.1 (64 位),Djang...

  • Django快速搭建博客(二)

    建立博客应用 已经建立了 Django 博客的项目工程,并且成功地运行了它。不过到目前为止这一切都还只是 Djan...

  • Django快速搭建博客(四)

    迁移数据库 为了让 Django 完成翻译,创建好这些数据库表,我们再一次请出工程管理助手 manage.py。切...

  • Django快速搭建博客(七)

    在此之前我们完成了 Django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有...

网友评论

本文标题:Django 快速搭建博客 第十一节

本文链接:https://www.haomeiwen.com/subject/ralybxtx.html