django-mobile-withstatic

软件截图:
django-mobile-withstatic
软件详细信息:
版本: 0.2.4
上传日期: 20 Feb 15
许可: 免费
人气: 11

Rating: 5.0/5 (Total Votes: 1)

Django的移动是一个Django应用程序,提供了一种简单的方式来检测移动浏览器,让您的工具,在你的手来呈现一些不同的模板将您的网站的移动版本给用户。
这样做是为了保持你的看法完全一致,但透明转乘用于渲染的响应模板。这样做是在两个步骤:
1.中间件来确定客户的喜好来查看您的网站。例如如果他想使用移动味道或完整模式的香味。
2.模板加载需要选择的基础上,在中间件检测到的味道正确的模板,然后照顾。
安装
预先要求:django_mobile取决于Django的会话框架。所以,如果你尝试使用django_mobile确保会议的框架已启用并正常工作。
1.你最喜欢的蟒蛇的工具,如安装django_mobile与easy_install的django_mobile或PIP安装django_mobile。
2.添加django_mobile到您的INSTALLED_APPS在settings.py设置。
3.添加django_mobile.middleware.MobileDetectionMiddleware您MIDDLEWARE_CLASSES设置。
4.添加django_mobile.middleware.SetFlavourMiddleware您MIDDLEWARE_CLASSES设置。确保它的上市后MobileDetectionMiddleware也经过SessionMiddleware。
5.添加django_mobile.loader.Loader作为第一个项目到你的TEMPLATE_LOADERS列表中的settings.py。
6.添加django_mobile.context_processors.flavour您TEMPLATE_CONTEXT_PROCESSORS设置。
现在,你应该能够使用Django移动在它的荣耀。阅读是如何工作的,并可以进行设置调整,以修改Django的手机的行为如下。
用法
Django的手机的概念是围绕不同的口味为您的网站的想法。例如,移动版被描述为一种可能的味道,桌面版本的另一个。
这使得有可能以提供一个完整的桌面体验和一个移动版本之间仅有区别的许多可能的设计代替。可以使多个移动口味可如一个用于iPhone和Android的移动Safari浏览器,以及一个用于歌剧和一个额外的一个用于互联网平板电脑如iPad。
注意:默认情况下,Django的移动唯一的全和移动味道区分。
后正确味由中间件某种程度上选择,它的分配给request.flavour属性。你可以使用这个在你的意见,提供单独的逻辑。
这个味道,然后用透明地选择自定义模板为这个特殊的香味。所选模板将当前的味道前缀你真的想使模板名称。这意味着,当render_to_response('的index.html',...)被称为与移动味道活跃实际上将返回与移动/ index.html的模板呈现的响应。但是,如果这种口味的模板不存在,它会优雅地退回到默认的index.html模板。
在某些情况下,它的不期望的方式来为每个风味一个完全独立的模板。您也可以使用{{香精}}模板变量,只改变一个模板的小方面。一个简单的例子:


  我的网站{%,如果味==“移动”%}(手机版){%ENDIF%}

<正文>
&NBSP; ...


这将增加(手机版)到您的网站的标题,如果观看启用移动味道。
注意:如果你设置了django_mobile.context_processors.flavour背景下的处理器和用于Django的RequestContext中的上下文实例来呈现模板味道模板变量才可用。
改变当前的风味
基本用例Django的手机显然是服务于您的网站的移动版本给用户。正确的口味的选择通常是已经完成了中间件,当自己的意见被调用。在某些情况下,你要改变当前使用的香精在您的视图或其他地方。您可以通过简单地调用django_mobile.set_flavour做到这一点(的味道[,永久=真])。第一个参数是自我解释。但请记住,你只能传递一个味道,你也是你FLAVOURS设置。否则set_flavour将引发ValueError。可选永久参数定义如风味的变化记为同一客户机的未来请求。
用户可以设置自己想要的味道他们的自我。他们只需要在一个请求到你的网站指定的味道GET参数。这将永久地选择这种味道是自己的喜好来查看现场。
您可以使用此GET参数,让用户从你的口味可供选择:


对缓存的注意事项
Django的是航运与一些方便的方法来轻松缓存你的意见。其中之一是django.views.decorators.cache.cache_page。与Django的移动缓存一整页联的问题是,Django的缓存系统,不知道味道。这意味着,如果所述第一请求到一个页面供应与移动风味,第二请求也可能获得与从缓存所述移动风味呈现的页面 - 即使请求了桌面浏览器的第二个。
Django的手机是航运与它自己的执行cache_page来解决此问题。请使用django_mobile.cache.cache_page而不是Django自己cache_page装饰。
您还可以使用Django的缓存中间件django.middleware.cache.UpdateCacheMiddleware和FetchFromCacheMiddleware像你已经做的。但让他们意识到口味,你需要添加django_mobile.cache.middleware.CacheFlavourMiddleware作为倒数第二项,在MIDDLEWARE_CLASSES设置,FetchFromCacheMiddleware之前。
参考
django_mobile.get_flavour([要求] [默认])
&NBSP;获得当前活动的味道。如果没有香味可确定将返回默认值。这可能发生,如果set_flavour没有在当前的请求 - 响应周期之前被调用。默认情况下默认的设置FLAVOURS的第一个项目。
django_mobile.set_flavour(味,[要求] [永久])
&NBSP;设置要用于请求的味道。这将提高ValueError异常,如果味道是不是在FLAVOURS设置。您可以尝试通过将永久=真实的味道永久设置​​的请求。如果你是一个请求 - 响应周期,这可能会失败。请求默认为当前活动的请求。
django_mobile.context_processors.flavour
&NBSP;背景信息处理器,其将所述电流味风味上下文。
django_mobile.context_processors.is_mobile
&NBSP;这个上下文处理器会is_mobile变量添加到是真,如果当前的味道等于DEFAULT_MOBILE_FLAVOUR设置的上下文。
django_mobile.middleware.SetFlavourMiddleware
&NBSP;负责加载从用户的会话存储的味道,如果设置的照顾。还设置了当前请求线程局部变量。这是必要的,以提供get_flavour()功能,而无需访问请求对象。
django_mobile.middleware.MobileDetectionMiddleware
&NBSP;检测是否移动浏览器尝试访问该网站,并设置风味DEFAULT_MOBILE_FLAVOUR设置值的情况下。
django_mobile.cache.cache_page
&NBSP;同Django的cache_page装饰,但适用vary_on_flavour前视图装饰有django.views.decorators.cache.cache_page。
django_mobile.cache.vary_on_flavour
&NBSP;从CacheFlavourMiddleware中间件创建的装饰。
django_mobile.cache.middleware.CacheFlavourMiddleware
&NBSP;将X-味的process_request头request.META,并增加了这个头,以回应['因人而异']在process_response。
定制
有迹象表明,让你自定义Django的移动行为提供一些意见。这里列举了一些可能性:
MobileDetectionMiddleware
内置的中间件来检测是否使用手机浏览器的用户提供良好的生产,但还远远没有完善,还实施了一个非常简单的方法。你可以从你的设置中删除该中间件,并添加您自己的版本来代替。只要确保它调用django_mobile.set_flavour在某些点设置正确的味道你。
设置
下面是所使用的Django的移动,并可以在自己的settings.py来改变设置列表:
FLAVOURS
为您的网站提供口味的列表。
默认值:('全','移动')
DEFAULT_MOBILE_FLAVOUR
这是选择是否内置MobileDetectionMiddleware检测移动浏览器的味道。
默认值:手机
FLAVOURS_TEMPLATE_PREFIX
寻找口味的模板时,该字符串将作为前缀的模板名称。如果你有很多口味,并希望将它们存储在一个共同的子目录,这是非常有用的。例如:
从django.template.loader进口render_to_string
从django_mobile进口set_flavour
set_flavour(“手机”)
render_to_string('的index.html')#将呈现'移动/ index.html的“
#现在加上这settings.py
FLAVOURS_TEMPLATE_PREFIX ='的味道/“
#再试一次
set_flavour(“手机”)
render_to_string('的index.html')#将呈现“味道/移动/ index.html的”
默认值:''(空字符串)
FLAVOURS_TEMPLATE_LOADERS
Django的手机的模板加载器可以加载模板前缀与当前的味道。指定与此设置其中装载机用于加载口味的模板。
默认值:同TEMPLATE_LOADERS设置,但没有'django_mobile.loader.Loader“。
FLAVOURS_GET_PARAMETER
用户可以改变他们想看看一个HTTP GET参数的味道。这决定了该参数的名称。它设置为无禁用。
默认:'味道'
FLAVOURS_SESSION_KEY
用户的偏好设置与GET参数被存储在用户的会话。此设置决定了会话密钥是用来保存这些信息。
默认:“味道”

什么在此版本中是新的

  • 在新增平台认识

什么是0.2.3版本,新的

  • 在FIX

    :在所有情况下设置的味道,不仅如果检测到移动浏览器。感谢John P. Kiffmeyer的报告。

要求

  • 在Python中
  • 在Django的

显影剂的其他软件 Gregor Mullegger

django-mobile
django-mobile

14 Apr 15

意见 django-mobile-withstatic

评论没有发现
添加评论
打开图片!