QA

[TOC]

核心代码是哪一部分

系统大概分为三个部分:

  • 数据收集

    • 即使用注入页面的JS代码,获取页面信息,并发送给系统

  • 数据处理

    • 即后台服务对接受到的页面信息进行解析、存储

  • 数据展示

    • 即对页面访问信息的前端展示

数据库怎么设计的,代码体现在哪一部分

模型使用Django框架的Model模块进行定义。

相应的代码在app/models.py

class PageViewInfo(models.Model):
    """页面访问数据"""
    title = models.CharField(verbose_name='网页标题', max_length=50, blank=True, null=True)
    account = models.CharField(verbose_name='客户账号', max_length=100, blank=True, null=True)
    uuid = models.CharField(verbose_name='访客ID', max_length=100, blank=True, null=True)
    domain = models.CharField(verbose_name='域名', max_length=500, blank=True, null=True)
    referrer = models.URLField(verbose_name='referrer url', max_length=500, blank=True, null=True)
    url = models.URLField(verbose_name='网页URL', max_length=500, blank=True, null=True)
    date = models.DateField(verbose_name='访问日期', auto_now_add=True)
    date_time = models.DateTimeField(verbose_name='访问日期及时间', auto_now_add=True)
    is_new = models.BooleanField(verbose_name='是否是新访客', default=False)
    source = models.CharField(verbose_name='流量来源', max_length=20, default='其他')

    def __str__(self):
        return self.title

数据表是怎么生成的?

数据库使用SQLite,数据库文件以及数据表的生成由Django执行,对应的命令为:

嵌入前端的js代码在哪里

和JS注入相关的两个js文件是:

  • ma-set.js : 在ga中,这个是由站长进行配置,主要功能有两个

    • 执行js代码动态插入ma.js的标签,用于注入ma.js,相关的代码如下

    • 整理需要发送给后台的数据

  • ma.js : 用于将站长配置的信息发送给后台服务(通过请求_utm.gif的方式)

    • 相关代码如下

哪里用到了bootstrap,哪里用到了django

Bootstrap

bootstrap是前端开发的工具包,主要用于前端页面布局及样式设计,相应的体现是在一些html文件中。

比如在templates/app/analysis/analysis.html中:

样式类rowcol 都来自于bootstrap框架。

Django

Django是一个基于Python的Web开放框架,是整个系统的基础。

主要体现在三个方面:

  • Model :与app/models.py相对应

  • View :与 app/models.py 相对应

  • Controller :与app/views.py相对应

  • Template : 对前端页面进行渲染。与templates 文件夹下的html文件相对应

还有实现过程中遇到了哪些问题,都怎么解决的

怎么跨站点发送数据?

由于浏览器禁止跨域请求的问题,但是对静态文件没有限制,于是通过向数据分析服务器请求静态文件,并把数据当作参数,实现发送数据的需求。具体可以参考ga的实现。

图表绘制,时间轴选择这种是怎么做到的

图标绘制

使用的echarts插件。

时间轴选择

也是使用插件,日期选择器,可以选择一段时间。

为什么访问地域功能没实现

凤尾没有提这个需求。

最后更新于