在 Django 模型中製作 Pickle 欄位


Python 中的 Pickle 主要用於對 Python 物件結構進行序列化和反序列化。換句話說,它是將 Python 物件轉換為位元組流的過程,以便將其儲存在檔案/資料庫中、跨會話維護程式狀態或透過網路傳輸資料

在本文中,我們將學習如何建立一個儲存 Pickle 物件的 Django 欄位。我們只使用models.py 和 Django shell

首先,安裝django-picklefield 軟體包 -

pip install django-picklefield

示例

models.py 中 -

from django.db import models
from picklefield.fields import PickledObjectField

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

在此,我們建立了一個模型並添加了pickle欄位。

現在讓我們檢查一下它是否有效。在終端上執行 “python manage.py shell” 並鍵入以下內容 -

from myapp.models import *
obj=new_model(args=['fancy', {'objects': 'inside'}]).save()
new_model.objects.all()

我們執行 shell 並建立一個可以儲存 Pickle 物件的新模型例項。儲存在其中的任何物件都將被轉換為pickle物件。

要在模型中儲存,可以這樣寫 -

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

您可以新增任何pickle物件或任何可以儲存在此欄位中的內容。

輸出

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

更新於: 26-Aug-2021

1000+ 次瀏覽

職業加速指南

透過完成課程獲取認證

開始入門
廣告