Computer >> Máy Tính >  >> Lập trình >> Python

Tạo trường Pickle trong mô hình Django

Pickle trong Python chủ yếu được sử dụng trong việc tuần tự hóa và giải mã hóa cấu trúc Pythonobject. Nói cách khác, đó là quá trình chuyển đổi một đối tượng Python thành một luồng byte để lưu trữ nó trong tệp / cơ sở dữ liệu, duy trì trạng thái chương trình qua các phiên hoặc truyền dữ liệu qua mạng

Trong bài viết này, chúng ta sẽ xem cách tạo trường Django để lưu các đối tượng pickle. Chúng tôi sẽ chỉ làm việc với models.py và Django shell

Trước hết, hãy cài đặt django-picklefield gói -

pip install django-picklefield

Ví dụ

Trong models.py -

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

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

Ở đây, chúng tôi đã tạo một mô hình và thêm dưa chua trường.

Bây giờ chúng ta hãy kiểm tra xem nó có hoạt động hay không. Trên thiết bị đầu cuối, hãy chạy "pythonmanage.py shell" và nhập thông tin sau -

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

Chúng tôi chạy shell và tạo một phiên bản mô hình mới có thể lưu trữ các đối tượng pickle. Bất kỳ đối tượng nào được lưu trữ trong đó sẽ được chuyển đổi thành dưa chua đối tượng.

Để lưu trong các mô hình, bạn có thể viết như thế này -

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

Bạn có thể thêm bất kỳ dưa chua nào đối tượng hoặc bất kỳ thứ gì có thể được chọn trong trường này.

Đầu ra

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