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', )
然后,在模板中可用的这些变量为:devicetype、is_mobile、is_tablet和big_resolution(尚未实现)。
其他设置
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_PATTERNS 和 DEVICETYPE_TABLET_PATTERNS
您可以覆盖默认搜索模式。它首先在平板模式中搜索。
构建状态
项目详情
关闭
django-devicetype-templates-0.2.3.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 588eee2b3061decad53614108ef13ed5e0e197cc8ed21b5c677f2040acc22326 |
|
MD5 | f1a8c69be43f793a10927e4cd01cf92f |
|
BLAKE2b-256 | 539240facf190b46f6131328da3462b8c464dc14945279bf0b9dbb1d2d2ce796 |
关闭
django_devicetype_templates-0.2.3-py2.py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c1ba695865edf1ec43da0d1c218b9e637e239993c6f072c1d7f3b44dfcf6e7f9 |
|
MD5 | e274adc8caaeecc4fd2c9cc4dd389b77 |
|
BLAKE2b-256 | 5f14da029ee4da523fb072ef65fd523c8c60ff0ad47b78eb21cb7bf34084544c |