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

django-useragents的Python项目详细描述


修正了原始的django用户代理的中间件问题,该软件包允许轻松识别访问者的浏览器、操作系统和设备信息,包括访问者是否使用移动电话、平板电脑或触摸设备。在幕后,
它使用"用户代理"https://github.com/selwin/python user agents>;` `.



installation
===


1。安装"django user agents",必须先安装"user agents":

pip install django user agents

2。配置"settings.py":

…代码块::python


已安装的应用程序=(
che.backends.memcached.memcached cache',
'位置':'127.0.0.1:11211',
}
}


如果未指定默认值,则将使用缓存别名。设置为"none"将禁用缓存。
用户代理缓存=默认值
用法
=



代码块::python

中间件类=(
其他中间件…
"django_user_agents.middleware.useragentmiddleware",



一个"user_agent"属性现在将添加到"request"中,您可以在"views.py"中使用该属性:

。代码块::python

def my_view(请求):

r/>request.user_agent.is_pc返回false
request.user_agent.is_bot返回false

访问用户代理的浏览器属性
request.user_agent.browser返回浏览器(family=u'mobile safari',version=(5,1),version_string=(5.1')
request.user廑agent.browser.family廑返回"mobile safari"
request.user廑agent.browser.version廑返回(5,1)
request.user廑agent.browser.version廑返回"5.1"

操作系统属性
request.user廑agent.os廑返回operatingsystem(family=u'ios,version=(5,1),version_string='5.1')
请求。用户_agent.os.family返回"ios"
请求。用户_agent.os.version返回(5,1)
请求。用户_agent.os.version_string返回"5.1"

设备属性
请求st.user_agent.device_returns device(family='iphone')
request.user戋agent.device.family_returns'iphone'

如果您有'django.core.context戋处理器。request``已启用,`'user戋agent``
也可以通过'request``在模板中使用:

{%if request.user_u agent.is_mobile%}
在这里做事情……
{%endif%}



view usage
——


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

…代码块::python

o其他内容……



模板使用
----

``django-user_agents``附带了一些模板过滤器:

*``是移动的`
*``是平板电脑`
*``是可触摸的`
*``s_pc``
*``是bot`


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

{%load user戋agents%}

{%if request_is戋mobile%}
mobile device stuff…
{%endif%}

{%if request_is戋tablet%}
tablet stuff…
{%endif%}

{%if请求是PC%}
PC材料……
{%endif%}

{%if请求是触摸设备材料……
{%endif%}

{%if请求是BOT%}
{%bot材料……
{%endif%}

{%if
有关用户代理属性的详细信息,请访问"here<;https://github.com/selwin/python user agents"`.



>运行测试
====

。代码块::console

`which django admin.py`test django_user_agents--settings=django_user_agents.tests.settings--pythonpath=.



===

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

<0.3.0
----
*python 3,感谢@hwkns!

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


0.2.1
-
-
*修复了打包

<0.2.0
-
*添加了模板过滤器
*在utils中添加了"get-u-user-agent"功能。py

0.1.1
-----
*修复了"http用户代理"为空时的"keyerror"异常

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

推荐PyPI第三方库


热门话题
空字符串检查在java中未按预期工作   JavaSpringWebClient:自动计算主体的HMAC签名并将其作为头传递   foreach是否有一个Java等效的foreach循环和一个引用变量?   java如何在Eclipse中导入jar   使用特定第三方或java时lombok触发错误。*方法或构造函数   安卓 java将对象数组转换为int数组   java使一定百分比的JUnit测试通过   java Android:将Seekbar的一个值与另一个值进行比较   java将int数组(图像数据)写入文件的最佳方式是什么   java取代了系统。yml的构造函数内的getProperty   sqlite Java将公钥和私钥转换为字符串,然后再转换回字符串   安卓获取白色像素并将其保存到java opencv中的数组中   java为什么是ServerSocket。setSocketFactory静态?   Java数组似乎在不直接修改的情况下更改值