可以把任何东西放入JSON的Django图书馆

jsonate的Python项目详细描述


##安装1.使用pip安装lib:

`pip install jsonate`

**-或-**


将"jsonate"目录放在python路径中的某个位置

2。将"jsonate"添加到"已安装的应用程序"中(在settings.py文件中)





<
<
<
<









<
<
<
{{{{{{{{{{{{{{{{}






这对于在数据属性中嵌入数据尤其有用,在数据属性中嵌入数据尤其有用,在


与javascript天秤天秤座一起使用
<是的像jquery(注意jsonate attr与jsonate escape相同):

<;div id="user widget"数据用户"{{user jsonate u attr}">;


<;script>;

用户数据=$("user widget")。数据("user");

<;/script>;。







<;script>;
>var-user用户数据{{user{jsonate};
<;script>;




<

``python
``python




querysetts

json=jsonate(user.objectobjects.all())








价值es
json=jsonate(user.objects.values())

t>>打印jsonate(user.objects.all()[0])
{
"用户名":"asdf asdf",
"名字":"asdf",
"姓氏":"asdf",
"是活动的":false,
"电子邮件":"asdf@example.com",
"是超级用户":false,
"是员工":false,
"最后登录":"2011-08-22T19:14:50.603531",
"id":5,
"date戡u joined":"2011-08-22T19:14:50.220049"
}
````


fields/exclude--serialization options

这会影响模型实例和查询集的序列化,
就像管理员一样!

django.db导入模型中的示例

`` python


normal_info=models.charfield(max_length=10)
sensitive_info=models.charfield(max_length=10)

class meta
jsonate_exclude=('sensitive_info',)
这也可以工作:
jsonate_fields=("normal_info",)
````

以每个案例为基础序列化,
改用"values()"。就像这样,

`` python
>;>>jsonate(user.objects.values("username","password"))
…[{"username":"someuser","password":"sha1$f26b2$d03a6123487fce20aabcdef0987654321abcdef0"}'
````


注意:这显然不是一个真正的密码或盐:)

如果找到对象,则将始终使用to-json()方法。该方法可以返回jsonate可以序列化的任何对象(注意无限的
循环)。

=models.charfield(max_length=10)


def to_json(self):
返回{"normal_info":self.normal_info,"serialized_at":time.time()}




分子是:35 eld是一个简单的jsonfield就像一直流行的jsonfield项目一样。
唯一的区别是jsonatefield使用jsonate json序列化器,它比其他jsonfield实现更加健壮。

示例:

``python
from django.db import models
from jsonate.fields import jsonatefield

类客户(models.model):
额外数据=jsonatefield(blank=true,null=true)




customer=customer()
客户。额外数据={
"身高":65,
"体重":115,
}
customer.save()
`````

不要问我你为什么关心y我们客户的身高和体重。


ld(validators=[jsonate validator])
```

……但是您可能应该只使用jsonateformfield(它使用
验证器):

``python
from django import forms
from jsonate.form字段import jsonateformfield

class myform(forms.form):
json输入=jsonateformfield()
```

el

类:jsonateformfield}
}
```


\jsonateresponse

`jsonateresponse`是httpresponse的一个子类,其工作原理几乎完全相同,只是它接受任何对象作为其数据,而不仅仅是
字符串。它返回结果json作为mimetype"application/json"

示例:

``python
from jsonate.http import jsonate response

def my_view(request):

return jsonateresponse(request.user)

me:"asdf","last_name":"asdf","is_active":false,"email":"asdf@example.com","is_superuser":false,"is_staff":false,"last_login":"2011-08-22t19:14:50.603531","id":5,"date_joined":"2011-08-22t19:14:50.220049"}
````


但生活会变得更容易!
`@jsonate_request`decorator(受django恼人的ajax_request decorator
的启发)将尝试序列化视图返回的任何内容
(通过jsonateresponse)将其返回到具有mimetype
"application/json"

的httpresponse中n httpresponse.

示例:

``python
@jsonate_request
def my_view(request):
form=myform(request.post)
如果form.is_valid():
form.save()
返回httpresponsereDirect("/some/path/")
否则:
返回form.errors
````

如果输入有效,httpresponsereDirect将不受影响地通过。

一封有效的电子邮件。

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

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?