wordcloud自动生成词云图 之自定义django中间件


发布时间:2020-02-07 20:26    作者: 晖哥哥   已过去:3 年,1 月   阅读总量:2591 已被赞:3


我的博客加入搜索功能后,我一直希望能够通过一种比较有趣的方式来展示搜索关键词,想了一下,感觉词云图是非常合适的一种方式,于是动手实现了,这里通过2篇博文来记录实现过程。

效果图:

分析:因为我是使用的  Django Haystack + jieba 实现站内全文检索与关键词高亮,Haystack是一个第三插件,如何获取用户搜索的时候提交的关键词就是一个难题,为了解决这个问题,我决定自定义一个中间件,来获取关键词。

步骤:

1.在项目下新建一个py文件,如:utlis/searchMiddleware.py

searchMiddleware.py 里:


from django.utils.deprecation import MiddlewareMixin #引入中间件

 

class MysearchMiddelware(MiddlewareMixin):
    def process_request(self,request):  #中间件可以定义五个方法,(主要的是process_request和process_response)
        path = request.path  #获取url
        if path == '/search/':  #比较url 如果成立,表明是搜索
            data = request.GET.get('q')  #获取搜索关键词
            if data:  #写入
                with open('word.txt', 'a+', encoding='utf-8') as f:
                    f.write(data)
        else:
            pass

2.settings.py 注册这个中间件

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'utlis.searchMiddleware.MysearchMiddelware',
]

 3.启动项目 测试,发现目录下有生成word.txt ,里面也有关键词。

下一篇 实现词云图生成!

注:中间件 https://www.cnblogs.com/sui776265233/p/9664642.html 讲得很详细。

 

点赞

3




登陆后方可评论