支持django中ajax开发的实用程序
django_ajax的Python项目详细描述
关于
django_uajax提供了一些基本的结构来使用ajax(以及 javascript)更简单。
如何
django_ajax提供各种实用程序。
呈现为json
render_to_json同时作为视图和装饰器实现。景色的确如此 真正的工作,而decorator是一个自身使用的实用函数 将对象转换为json的视图。
视图需要两个参数:
- 请求
- 要输出为json的对象
它设置了一些http头,以确保json可以在任何地方加载,并且 浏览器中没有缓存任何内容。
decorator只调用原始视图函数。如果回答不是 已经是一个httpresponse,它将通过如上所述的视图。
{%json%}
将各种对象呈现为json的模板标记。
语法:
<script type="text/javascript"> var obj_as_json = {% json object %}; </script> <script type="text/javascript"> {# Output "null" of variable does not exist (prevents JS error) #} var obj_as_json = {% json object or null %}; </script>
{%ajax_cache%}
将对象传递给某个js函数的实用工具模板标记。可能习惯于 实现js端对象缓存。这将加速js驱动的应用程序,如 模板可以输出js对象,然后无论如何都需要它们。标签 确保每个对象只缓存一次,多个调用只缓存一次 输出一个js调用。
语法:
<script type="text/javascript"> {% comment %} Will output the same as "some_func.to.call({% json object %});" But only if object was not used in combination with "some_func.to.call" before. {% endcomment %} {% ajax_cache object using "some_func.to.call" %} </script>
ajax处理器
与上下文处理器类似,但用于将变量放入js上下文。 通过上下文处理器提供js_上下文,可以使用 {%json js_context%}。示例:
<script type="text/javascript"> var config = {% json JS_CONTEXT %}; </script>
使用settings.ajax配置处理器,其语法与 对于上下文处理器。
Dango_u AJAX配有三个AJAX处理器 (住在django_ajax.ajax_处理器中):
- 媒体:提供媒体URL
- 静态:提供静态URL
- 会话:提供基本的认证信息
- 包括ajax登录/注销url和视图
API
在不同的地方使用object.ajax_data(),以允许定义方法转换 models/…转换成字典,可以转换成json。这样你可以 将模型实例直接传递给{%json%},模型可以定义 要输出的数据。