django项目用higcharts统计最近七天文章点击量。

下载higcharts插件放在static文件夹下

前端引入

<script src="/static/highcharts/highcharts.js"></script>
<script src="/static/highcharts/modules/exporting.js"></script>
<script src="/static/highcharts/modules/oldie.js"></script>
<script src="/static/highcharts/highcharts-zh_CN.js"></script>

定义在页面中的位置

<div id="container" style="min-width:400px;height:400px"></div>

前端js

<script>
        var chart = Highcharts.chart(‘container‘, {
    chart: {
        type: ‘line‘
    },
    title: {
        text: ‘日点击量和点赞量统计‘
    },
    subtitle: {
        text: ‘数据来源: terroristhouse.com‘
    },
    xAxis: {
        categories: {{ list_week_day|safe }}
    },
    yAxis: {
        title: {
            text: ‘数量 (次)‘
        }
    },
    plotOptions: {
        line: {
            dataLabels: {
                // 开启数据标签
                enabled: true
            },
            // 关闭鼠标跟踪,对应的提示框、点击事件会失效
            enableMouseTracking: false
        }
    },
    series: [{
        name: ‘点击量‘,
        data:{{ clicknum_list|safe }}
    }, {
        name: ‘点赞量‘,
        data: {{ praise_num_list|safe }}
    }]
});

        </script>

路由

# 点击量统计
re_path(‘article/click/‘, article.click,name=‘article/click/‘),

后台方法

from blog.utils import function

# 点击量
def click(request):
    recent_seven_days = function.recent_seven_days()
    list_week_day = recent_seven_days[::-1]  # 进行倒序
    clicknum_list = []
    praise_num_list = []
    # print(list_week_day)
    for v in list_week_day:
        click_num_obj = Praise.objects.filter(click_addtime=v,click_sort=1).aggregate(clicknum=Count(‘click_sort‘))
        praise_num_obj = Praise.objects.filter(click_addtime=v,click_sort=0).aggregate(praise_num=Count(‘click_sort‘))
        # print(click_num_obj[‘clicknum‘],praise_num_obj[‘praise_num‘])
        clicknum = int(click_num_obj[‘clicknum‘]) if (click_num_obj[‘clicknum‘] is not None) else 0
        praise_num = int(praise_num_obj[‘praise_num‘]) if (praise_num_obj[‘praise_num‘] is not None) else 0

        clicknum_list.append(clicknum)

        praise_num_list.append(praise_num)
    # print(clicknum_list)

    # data=[{
    #     ‘name‘: ‘点击量‘,
    #     ‘data‘: clicknum_list
    # }, {
    #     ‘name‘: ‘点赞量‘,
    #     ‘data‘: praise_num_list
    # }]

    # num= [ ‘20190624‘, ‘20190625‘, ‘20190626‘, ‘20190627‘, ‘20190628‘, ‘20190629‘, ‘20190630‘]
    return render(request,‘article/click.html‘,locals())

应用目录下创建untils文件夹,并在其下创建function.py文件,用来获取最近七天日期

# 七天日期
def recent_seven_days():# 通过for 循环得到天数,如果想得到两周的时间,只需要把8改成15就可以了。
    import datetime
    d = datetime.datetime.now()#2019-6-28 9:25:43.843164
    lists = []
    for i in range(1,8):#i:1-7
        oneday = datetime.timedelta(days=i) #1 day, 0:00:00     2 days, 0:00:00 ... 7 days, 0:00:00
        day = d - oneday#2019-06-27 11:32:10.186535  2019-06-26 11:32:10.186535 ... 2019-06-21 11:32:10.186535
        date_to = datetime.datetime(day.year, day.month, day.day)#2019-06-27 00:00:00   2019-06-26 00:00:00  ...  2019-06-21 00:00:00
        lists.append(str(date_to)[0:10])#2019-06-27  2019-06-26  ... 2019-06-21
    return lists

页面效果

done。

原文地址:https://www.cnblogs.com/nmsghgnv/p/11367469.html

时间: 2024-10-10 01:36:42

django项目用higcharts统计最近七天文章点击量。的相关文章

Django学习(七) 创建第一个Django项目

如果这是你第一次使用Django,你必须进行一些初始设置.即,您将需要自动生成一些代码,建立了Django项目. 从命令行.cd进入一个目录,你想要存储您的代码,然后运行以下命令: django-admin startproject mysite 这样就会在当前目录下创建一个为mysite的目录.在这个创建的mysite文件夹中默认包含了一些文件,文件结构目录如下: mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py

python例子-开始一个Django项目

一.创建项目: django-admin startproject mysite 二.到该目录下,创建app: python manage.py startapp learn # learn 是一个app的名称 并将app添加到mysite/mysite/settings.py 中: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.co

Django项目实践4 - Django网站管理(后台管理员)

http://blog.csdn.net/pipisorry/article/details/45079751 上篇:Django项目实践3 - Django模型 Introduction 对于某一类站点, 管理界面 是基础设施中很重要的一部分. 这是以网页和有限的可信任管理者为基础的界面,它能够让你加入,编辑和删除站点内容. 常见的样例: 你能够用这个界面公布博客,后台的站点管理者用它来润色读者提交的内容,你的客户用你给他们建立的界面工具更新新闻并公布在站点上.这些都是使用管理界面的样例. 创

Django 项目创建方法

以下为创建django创建方法步骤: 一.安装django模块 pip3 install Django 二.创建django项目 (1)通过命令方式创建 django-admin startproject mystie (2)通过pycharm创建 新建django项目 三.文件说明 1.setting.py 配置文件 2.urls.py 路由系统 3.wsgi.py 4.manage.py 启动文件 四.创建app(其中一个项目的名字,例如cmdb) python3 manage.py sta

第一个django项目

部分转自:https://www.cnblogs.com/linagcheng/p/9932302.html 1.项目启动: pycharm启动:点击绿色的小三角,直接启动django项目(小三角的左边是django名字) "C:\Program Files\JetBrains\PyCharm 2018.3.3\bin\runnerw64.exe" C:\Users\zte\AppData\Local\Programs\Python\Python35\python.exe C:/Use

Django项目的创建与介绍

安装:pip3 install django==1.11.x 查看版本号:django-admin --version 新建项目:1.前往目标目录 2.django-admin startproject proj_name proj_name:项目目录,包含项目最基本的一些配置 --__init__.py:模块的配置文件 --settings.py:配置总文件 --urls.py:url配置文件,django项目中的所有 页面都需要对其配置url地址 --wsgi.py:(web server

Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查

一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process using '"' #可以直接用 python3 -m pip 代替 pip3 #这个问题是pip3 版本过低直接在cmd中执行 python3 -m pip install --upgrade pip 更新pip3 # 在指定解释器环境下安装django 1.11.9 # 在真实python3环境

python中django项目上线环境部署

django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚本正常使用 4 确认用户环境变量配置文件,有virtualenvwrapper.sh的四行配置 WORKON_HOME=~/Envs VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' VIRTUALENVWRAPPER_PYTHON=/op

Django项目流程简单版

Django项目流程简单版 创建项目 一.创建Django项目 django-admin startproject 项目名 跟项目名同名的文件夹 __init__.py settings.py 暴露给用户可配置的配置文件 urls.py wsgi.py manage.py 二.创建app python3 manage.py startapp app名 app名的文件夹 migrations文件夹 数据库操作记录 __init__.py apps.py 注册app相关文件 admin.py dja