Skip to main content

一个 django 包,可以轻松识别访问者的浏览器、操作系统和设备信息(手机、平板电脑或具有触摸功能)。

项目描述

公开版 0.3.1
==================
Fork:https://github.com/selwin/django-user_agents

Django 用户代理
========= =========

一个 django 软件包,可以轻松识别访问者的浏览器、操作系统和设备信息,
包括访问者是否使用手机、平板电脑或具有触控功能的设备。在底层,
它使用了`user-agents <https://github.com/selwin/python-user-agents>`_。


安装
============

1. 安装 ``django-user-agents``,你必须确保先安装 `user-agents`_::

pip install pyyaml ua- parser user-agents
pip install django-user-agents

2. 配置 ``settings.py``:

.. code-block:: python

INSTALLED_APPS = (
# Other apps...
'django_user_agents',
)

# 缓存后端是可选的,但建议加快用户代理解析
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached .MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}

# 缓存用户代理的缓存后端名称。如果未指定默认
# 缓存别名将被使用。设置为“无”以禁用缓存。
USER_AGENTS_CACHE = 'default'
用法
=====

中间件
----------

在 ``settings.py`` 中添加``UserAgentMiddleware``:

。. 代码块:: python

MIDDLEWARE_CLASSES = (
# other middlewares...
'django_user_agents.middleware.UserAgentMiddleware',
)

``user_agent`` 属性现在将被添加到``request``,你可以
在``views.py``:中使用

。 . code-block:: python

def my_view(request):

# 假设访问者使用 iPhone...
request.user_agent.is_mobile # 返回 True
request.user_agent.is_tablet # 返回 False
request.user_agent.is_touch_capable # 返回 True
request .user_agent.is_pc # 返回 False
request.user_agent.is_bot # 返回 False

# 访问用户代理的浏览器属性
request.user_agent.browser # 返回 Browser(family=u'Mobile Safari', version=(5, 1), version_string='5.1')
request.user_agent.browser.family # 返回 'Mobile Safari'
request.user_agent.browser. version #returns (5, 1)
request.user_agent.browser.version_string #returns '5.1'

# 操作系统属性
request.user_agent.os #returns OperatingSystem(family=u'iOS', version=(5, 1), version_string= '5.1')
request.user_agent.os.family # 返回 'iOS'
request.user_agent.os.version # 返回 (5, 1)
request.user_agent.os.version_string # 返回 '5.1'

# 设备属性
request.user_agent.device #returns Device(family='iPhone')
request.user_agent.device.family #returns 'iPhone'

如果你启用了``django.core.context_processors.request``,``user_agent``
也会通过``request``::

{% if request.user_agent.is_mobile %}
Do stuff here...
{% endif %}


查看用法
----------

``django-user_agents `` 带有 ``get_user_agent`` ,它接受一个
``request`` 参数并返回一个 ``UserAgent`` 实例。示例用法:

.. code-block:: python

from django_user_agents.utils import get_user_agent

def my_view(request):
user_agent = get_user_agent(request)
if user_agent.is_mobile:
# Do stuff here...
elif user_agent.is_tablet:
# Do other things...


Template Usage
--------------

``django-user_agents`` 带有一个几个模板过滤器:

* ``is_mobile``
* ``is_tablet``
* ``is_touch_capable``
* ``is_pc``
* ``is_bot``

你可以像使用任何其他 django 模板过滤器一样使用所有这些::

{% load user_agents %}

{% if request|is_mobile %}
移动设备的东西...
{% endif %}

{% if request|is_tablet %}
平板电脑的东西...
{% endif %}

{% if request|is_pc %}
PC东西...
{% endif %}

{% if request|is_touch_capable %} 支持
触控的设备内容...
{% endif %}

{% if request|is_bot %}
机器人内容...
{% endif %}


您可以了解有关用户的更多信息`here <https://github.com/selwin/python-user-agents>`_处的代理属性。


运行测试
=============

.. 代码块:: 控制台

`which django-admin.py` 测试 django_user_agents --settings=django_user_agents.tests.settings --pythonpath=。


Changelog
=========

0.3.1
-----
* 修复了请求没有 META 属性时的错误

0.3.0
-----
* Python 3,感谢@hwkns!

0.2.2
-----
* 修复了当用户代理超过 250 个字符时导致缓存设置/读取失败的错误

0.2.1
-----
* 修复了打包

0.2.0
-----
* 添加了模板过滤器
* 添加了 ``get_user_agent`` utils.py

0.1.1中的函数
-----
* 修复了空 ``HTTP_USER_AGENT``

0.1情况下的 ``KeyError`` 异常
---
* 初始版本

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

django-user-agents-last-0.3.1.tar.gz (7.0 kB 查看哈希)

已上传 source