一个 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`` 异常
---
* 初始版本
==================
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`` 异常
---
* 初始版本