跳转到主要内容

Django库,用于为不同设备类型提供不同的模板

项目描述

django-devicetype-templates是一个库,它通过浏览器用户代理字符串检测设备类型,并为每种类型提供不同的模板。

如果标准响应式布局不能满足您的所有需求,且您不想使用带有线程本地的某些黑客模板加载器,您可能会发现这个库很有用。

要求

  • Django >= 1.7

  • 已测试Python版本2.7,3.3,3.4,3.5

  • 它使用process_template_response中间件方法,因此您的视图应返回TemplateResponse

安装

从PyPi安装

pip install django-devicetype-templates

安装开发版本到虚拟环境

git clone https://github.com/whit/django-devicetype-templates.git
cd django-devicetype-templates
python setup.py develop

运行测试

pip intsall -r requirements-dev.txt
py.test

配置

添加中间件

MIDDLEWARE_CLASSES = (
    ...
    'devicetype.middleware.DeviceTypeMiddleware',
)

如果您需要在模板中使用一些变量,您可以添加devicetype上下文处理器

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'devicetype.context_processors.devicetype',
)

然后,在模板中可用的这些变量为:devicetypeis_mobileis_tabletbig_resolution(尚未实现)。

其他设置

DEBUG_DEVICETYPE_NOCOOKIE

开发目的,如果您经常切换用户代理。Cookie最大年龄设置为5秒。

DEVICETYPE_TEMPLATE_PREFIX

前缀是可变的。当您需要前缀模板文件名时,可以使用类似 tablet- 的格式。如果您想在子文件夹中有特定设备的模板,例如,可以使用 tablet/ 前缀。

默认

{
    'desktop': '',
    'mobile': 'mobile/',
    'tablet': 'tablet/',
}

DEVICETYPE_PREFIX_BASENAME

当您使用类似 tablet/mobile/ 的文件夹前缀时,此设置允许您选择如何检测子文件夹。

使用 DEVICETYPE_PREFIX_BASENAME = False(默认)

tablet/base.html
tablet/app/app_base.html
tablet/layout/three-cols.html
...

使用 DEVICETYPE_PREFIX_BASENAME = True

tablet/base.html
app/tablet/app_base.html
layout/tablet/three-cols.html
...

DEVICETYPE_MOBILE_PATTERNSDEVICETYPE_TABLET_PATTERNS

您可以覆盖默认搜索模式。它首先在平板模式中搜索。

构建状态

主分支:
Travis CI - Distributed build platform for the open source community

项目详情


下载文件

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

源分发

django-devicetype-templates-0.2.3.tar.gz (5.0 kB 查看散列

上传时间

构建分发

django_devicetype_templates-0.2.3-py2.py3-none-any.whl (8.0 kB 查看散列

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面