发 帖  
原厂入驻New
[问答]

求Djangomodels存储json格式的数据?

113 Djangomodels json 数据
分享
2020-11-6 06:25:40   评论 分享淘帖 邀请回答
3个回答

  • 用于存储JSON格式数据的字段。在Python中,数据以其Python本机格式表示:字典,列表,字符串,数字,布尔值和None。
  • 一个可选的JSON格式类序列化的数据类型不是由标准JSON序列(支持的datetime,uuid等)。例如,您可以使用 DjangoJSONEncoder该类或任何其他json.JSONEncoder子类。
2020-11-6 14:09:28 评论

举报

JSONField使用


  • 官网是按照PostgreSQL为示例,这里用的是MySQL,其实除了引用不一样,别的用法都是相同的。
  • 示例

1
2
3
4
5
6
7
8
9
from django_mysql.models 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
2020-11-6 14:09:39 评论

举报

JSONField的查询


  • 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> Dog.objects.create(name='Rufus', data={
...     'breed': 'labrador',
...     'owner': {
...         'name': 'Bob',
...         'other_pets': [{
...             'name': 'Fishy',
...         }],
...     },
... })
>>> Dog.objects.create(name='Meg', data={'breed': 'collie'})

>>> Dog.objects.filter(data__breed='collie')
<QuerySet [<Dog: Meg>]>
可以将多个键链接在一起以形成路径查找

1
2
>>> Dog.objects.filter(data__owner__name=&#39;Bob&#39;)
<QuerySet [<Dog: Rufus>]>
如果键是整数,它将被解释为数组中的索引查找

1
2
>>> Dog.objects.filter(data__owner__other_pets__0__name=&#39;Fishy&#39;)
<QuerySet [<Dog: Rufus>]>
2020-11-6 14:09:47 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表