Django的基本访客跟踪和黑名单

codingsoho-tracking的Python项目详细描述


`` codingsoho tracking``是一个简单的尝试,它可以跟踪django支持的网站的访问者。它还提供基本的黑名单功能。

https://github.com/codekoala/django tracking/contributors>;`.

…图片::https://img.shields.io/pypi/v/django tracking.svg
:目标:https://pypi.python.org/pypi/django tracking/

…图片::https://img.shields.io/pypi/dm/django tracking.svg
:目标:https://pypi.python.org/pypi/django tracking/

…图片::https://img.shields.io/github/license/bashu/django tracking.svg
:目标:https://pypi.python.org/pypi/django tracking/

……图片::https://landscape.io/github/bashu/django-tracking/develop/landscape.svg?style=flat
:target:https://landscape.io/github/bashu/django tracking/develop


features
--

*跟踪有关访问者的以下信息:

*会话密钥
*IP地址
*用户代理
*无论他们是否是注册用户和登录
*他们来自何方(http-referer)
*他们上次访问您网站上的哪个页面
*他们访问过您网站上的多少页面

*允许用户代理筛选访问者跟踪
*自动清理旧访问者记录
*可以禁止某些IP地址,使站点对来自
那些IP的访问者无效(非常适合阻止垃圾邮件)
*在您的站点上有活动用户的实时源
*模板标记到:

*显示站点上有多少活动用户
*确定站点上有多少活动用户在您的站点中的同一页

*可选的"活动访问者地图",以查看访问者在世界上的位置


要求
====


,据我所知,django跟踪工作的唯一要求是django的现代版本。我开发了django 1.0alpha 2和
beta1的项目。它是为使用新表单管理功能而设计的。

您需要安装"geoip c api library"
<;http://geolite.maxmind.com/download/geoip/api/c/geoip.tar.gz>;` ` ` ` `.
您可能需要获取"geolite city binary"
<;http://www.maxmind.com/app/geolitecity>;` ` ` ` `,除非您是付费的maxmind
客户。这是"django tracking"用来将
ip转换为地球上某个位置的数据文件。稍后将讨论如何配置此功能。

http://pypi.python.org/pypi/codingsoho-tracking/>;``或使用:



下载并安装``codingsoho-tracking``.


轻松安装
----

http://pypi.python.org/pypi/codingsoho跟踪/>;`或者使用::

easy_install codingsoho tracking

http://bitbucket.org/hordechief/codingsoho-tracking
git clone http://github.com/hordechief/codingsoho-tracking.git


package download
===

记住。

配置操作
===



首先,必须将此项目添加到
``settings.py``中的"已安装的应用程序"列表:


installed的应用程序=(
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',,
"django.contrib.sessions"、
"django.contrib.sites"、

"tracking"、




运行"manage.py syncdb"。这将在数据库中创建一些操作所必需的表。


具体取决于您希望如何使用此应用程序,您有几个选项:

visitor tracking
----


将"tracking.middleware.visitorrackingmiddleware"添加到"settings.py"中的"middleware"类中。它必须在
``authenticationmiddleware```的下面,这样就存在``request.user``了。

将"tracking.middleware.visitorcleanupmidleware"放在
``中间件类``.

----


将"tracking.middleware.bannedipmidleware"添加到"settings.py``中间件类`
中。我建议把它作为
``中间件类``中的第一项,这样在django意识到它们不属于您的站点之前,您的被禁止用户就不必钻取任何
其他中间件。

标记)
--------

确保"django.core.context_processors.request"位于
"template_context_processors"元组中的某个位置。此上下文处理器使模板可以访问
``request``对象。此应用程序使用
``request``对象来确定用户在模板
标记中查看的页面。


地图功能。确保您已经在主urlconf中添加了一行
,如下所示:

from django.conf.urls.defaults import*


(r'^tracking/',include('tracking.urls'),

next,在"settings.py"中设置两个设置:

*``google-maps-key```:您自己的google-maps-api-key
*``tracking-use-geoip```:如果您想在
地图上看到标记,请将其设置为"true":将其设置为
`` geoip.dat``或'geoicity.dat``或任何文件。它通常是
类似于`/usr/local/share/geoip.dat``或`/usr/share/geoip/geoip.dat`.
*``geoip缓存类型``:处理geoip数据时要使用的缓存类型:

*``0`:从文件系统读取数据库,使用最少的内存。
*``1`:将数据库加载到内存中,性能更快,但使用的内存更多。
*``2`:检查更新的数据库。如果数据库已更新,请重新加载
filehandle和/或内存缓存。
*``4`:只缓存
数据库中最常访问的索引部分,从而比"geoip标准"更快地查找,但比"geoip内存缓存"更少的内存使用量-有用对于大型数据库
,例如geoip组织和geoip城市。注意,对于geoip country,
region和netspeed数据库,``geoip`index`u cache``等同于
``geoip`memory`u cache``。*default*

*`` default_tracking_template``:生成
访问者映射时要使用的模板。默认为"tracking/visitor_map.html`.

完成后,您应该可以转到站点上的"`/tracking/map/`"(用您在urlconf中选择使用的任何前缀替换"`tracking`",很明显,
)。默认温度Late依赖于jquery的强大功能,但是
您可以自由使用任何您想要的东西。


用法
=


显示您的一个模板中的活动用户数,确保模板中某处有`{%load tracking_tags%}`并执行如下操作:


{%visitors_on_site as visitors%}
<;p>;
{{visitors}}活动用户{visitors{pluralize}
<;p>;

阅读此页
<;/p>;

如果不希望跟踪站点的特定区域,可以使用"无跟踪"前缀在"settings.py"中定义前缀列表。对于
示例,如果您不想访问网站的`/family/``部分,
请将``no-tracking`前缀``设置为`[/family/`````.

如果您不想计算某些用户代理,例如Yahoo!'s slurp和
google的googlebot,您可以在
django管理界面中将关键字添加到访问者跟踪中。查找"未跟踪的用户代理",并添加区分特定用户代理的
关键字。不会跟踪用户代理字符串中包含
关键字的任何访问者。

默认情况下,活动用户包括最近10分钟内的任何访问者。如果要覆盖该设置,只需在"settings.py"中将"tracking_timeout"设置为所需的"many minutes"。

如果要覆盖该设置,请将
``tracking_cleanup_timeout``设置为
``settings.py``中所需的小时数。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
文件名的java正则表达式限制名称大小和文件扩展名   Mac上的java Android SDK:jspawnhelper意外退出   java SQL Server 2000到Oracle 12c重音字符   在Java中快速比较大数据集中的值和小数据集中的值   java在代码中的许多地方保留对对象的引用   Java规范中私有内部类的jvm访问标志与反射API不一致?   比较2个int数组中匹配的数字   java Apache Commons数学简化回归:get prediction stderr   安卓 Java SDK管理器因命令行输出中的“flashplayerplugin”而崩溃   JavaSQLite:关闭DB时必须关闭游标吗?   泛型Java设计抽象类声明示例说明   java应用程序在添加片段时崩溃   如何在java中使用注释为字段加载值