可以把任何东西放入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第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null