在 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)>]>
廣告