在 Django 模型中创建 Pickle 字段

Python 中的 Pickle 主要用于序列化和反序列化 Python 对象结构。换句话说,它是将 Python 对象转换为字节流以将其存储在文件/数据库中、跨会话维护程序状态或通过网络传输数据的过程

在本文中,我们将看到如何创建一个 Django 字段来保存泡菜对象。我们只会使用models.py和 Django shell

首先,安装django-picklefield包 -

pip install django-picklefield

示例

models.py -

fromdjango.dbimport models
frompicklefield.fieldsimport PickledObjectField

# Create your models here.
class new_model(models.Model):
   args = PickledObjectField()

在这里,我们创建了一个模型并添加了泡菜字段。

现在让我们检查它是否有效。在终端上运行“python manage.py shell”并输入以下内容 -

frommyapp.modelsimport *
obj=new_model(args=['fancy', {'objects': 'inside'}]).save()
new_model.objects.all()

我们运行 shell 并创建一个可以存储泡菜对象的新模型实例。存储在其中的任何对象都将转换为pickle对象。

要保存模型,您可以这样写 -

fromdjango.httpimport HttpResponse
def my_view(request):
   Object=new_model(args=['fancy',{'name': 'ath'}])
   Object.save()
   return HttpResponse("Object saved")

您可以在此字段中添加任何pickle对象或任何可以pickle 的对象。

输出结果

In [4]: new_model.objects.all()
Out[4]:<QuerySet [<new_model: new_model object (1)>]>