Django-Pjax:The Django Helper for Jquery-Pjax。
django-pjax的Python项目详细描述
[django pjax]的改进:jquery pjax的django助手。
PJAX是什么?
pjax本质上是[ahah](“异步html和http”),除了 真正的烫发和工作后退按钮。它可以让你加载一个 页面的一部分(因此速度更快),同时仍然保持 真实链接的可用性。
一个演示更有意义,所以[看看一个熟练的放在一起]。
学分
这个项目是[django pjax]的扩展,所有来自 原版归[雅各布·卡普兰·莫斯]。
关于
这个项目保留了原来的结构,但是增加了新的功能, 旨在保持django pjax的更新。有些目标是保持这个 使用Python2.7+和3.3+以及Django1.5+的项目。
请随时提交一个公关和贡献这个项目。
兼容性
- python 2.6+或3.2+
- pypy或pypy3
- cpython
- Django 1.3+
并非所有的django版本都能与python、pypy或cpython一起工作。见 django docs了解更多支持的版本。
安装
只需运行:
pip install django-pjax
用法
首先,阅读[如何使用jquery pjax][defunkt的jquery pjax]和 选择其中一种技术。
接下来,确保您正在使用的视图是[TemplateResponse]。 您不能仅将django pjax与普通的HttpResponse一起使用 TemplateResponse。
pjax装饰器
pjax装饰器:
pjax(pjax_template=None,additional_templates=None,follow_redirects=False)
pjax_template(str):默认模板。
additional_templates(dict):多个 容器。
follow_redirects(bool):如果为true,所有django重定向将强制 页面重新加载,而不是将内容放在pjax上下文中。
用pjax decorator装饰这些视图:
fromdjpjaximportpjax@pjax()defmy_view(request):returnTemplateResponse(request,"template.html",{'my':'context'})
这样做之后,如果请求是通过jquery pjax发出的,那么 @pjax()decorator将自动调出template.htmltemplate-pjax.html。
更正式地说:如果请求是pjax请求,则 您的TemplateResponse将替换为-pjax 在文件扩展名之前。所以template.html变成 template-pjax.html,my.template.xml变成 my.template-pjax.xml等。如果没有文件扩展名,则 模板名将仅以-pjax作为后缀。
还可以通过将pjax模板作为参数传递来手动选择它 致装饰商:
fromdjpjaximportpjax@pjax("pjax.html")defmy_view(request):returnTemplateResponse(request,"template.html",{'my':'context'})
您还可以为pjax容器选择pjax模板并使用多个 decorators为多个cont定义模板