django项目的ajax goodies。

django-ajax-toolkit的Python项目详细描述


django ajax工具包

依赖项

  • msgpack python>;=0.2.4
  • django>;=1.3

ci状态(travis)

https://api.travis-ci.org/Geekfish/django-ajax-toolkit.png?branch=master,release/0.1,release/0.2

安装

从PYPI中获取:

pip install django-ajax-toolkit

或:

easy_install django-ajax-toolkit

在视图中返回数据对象

jsonresponse

如果要扩展视图以使用ajax,可以选择在响应中返回json数据。 为了更方便,您可以使用ajaxtoolkit.http

中的JsonResponse
from ajaxtoolkit.http import JsonResponse

class MyView(TemplateView):

    def get(self, request, *args, **kwargs):
        if request.is_ajax:
            context = self.get_context_data()
            return JsonResponse(context)
        # ...

这将设置正确的mimetype(application/json)并将上下文数据序列化为json对象。

msgpackresponse

MsgpackResponse的工作方式与JsonResponse类似,但使用msgpack提供二进制序列化。 用法与JsonResponse

相同
def get(self, request, *args, **kwargs):
    if request.is_ajax:
        context = self.get_context_data()
        return MsgpackResponse(context)
    # ...

ajax中间件

如果使用的是django的消息框架,还可以在 中间件。

这将把请求中生成的所有消息插入到JsonResponse对象:

from django.contrib import messages
from ajaxtoolkit.http import JsonResponse

class MyView(TemplateView):

    def get(self, request, *args, **kwargs):
        if request.is_ajax:
            context = self.get_context_data()

            messages.info(request, "This is very useful")
            messages.warning(request, "Be careful!")

            return JsonResponse(context)
        # ...

这将呈现如下:

{
    //...
    'django_messages': [
        {"extra_tags": "info",
         "message": "This is very useful",
         "level": 20},
        {"extra_tags": "warning",
         "message": "Be careful!",
         "level": 30}
    ]
}

绕过消息中间件

如果您想在不附加消息的情况下发送http响应,可以这样做 通过设置响应对象的message_support属性:

context = self.get_context_data()

response = JsonResponse(context)
response.message_support = False

return response

您还可以选择对原始响应类进行子类划分,例如:

class MsgpackResponseWithoutMessages(MsgpackResponse):
    message_support = False

# ...

贡献

克隆,创建一个virtualenv并运行:

make install

这将安装所有依赖项。然后可以使用以下命令运行测试:

./runtests.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素