可以把任何东西放入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将不受影响地通过。
一封有效的电子邮件。
`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
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将不受影响地通过。
一封有效的电子邮件。