DjangoORMmodels存储json格式的数据
JSONField
介绍
⽤于存储JSON格式数据的字段。在Python中,数据以其Python本机格式表⽰:字典,列表,字符串,数字,布尔值和None。
⼀个可选的JSON格式类序列化的数据类型不是由标准JSON序列(⽀持的datetime,uuid等)。例如,您可以使⽤
DjangoJSONEncoder该类或任何其他json.JSONEncoder⼦类。
JSONField使⽤
官⽹是按照PostgreSQL为⽰例,这⾥⽤的是MySQL,其实除了引⽤不⼀样,别的⽤法都是相同的。
⽰例
1 2 3 4 5 6 7 8 9from dels import JSONField from django.db import models
class Dog(models.Model):
name = models.CharField(max_length=200) data = JSONField()
def __str__(self):
return self.name
JSONField的查询
⽰例
1 2 3 4 5 6 7 8 9 10 11 12 13>>> ate(name='Rufus', data={
... 'breed': 'labrador',
... 'owner': {
... 'name': 'Bob',
... 'other_pets': [{
.
.. 'name': 'Fishy',
django登录注册功能... }],
... },
... })
>>> ate(name='Meg', data={'breed': 'collie'}) >>> Dog.objects.filter(data__breed='collie')
<QuerySet [<Dog: Meg>]>
可以将多个键链接在⼀起以形成路径查
1 2>>> Dog.objects.filter(data__owner__name='Bob')
<QuerySet [<Dog: Rufus>]>
如果键是整数,它将被解释为数组中的索引查
1 2>>> Dog.objects.filter(data__owner__other_pets__0__name='Fishy') <QuerySet [<Dog: Rufus>]>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论