পাইথনে পিকল মূলত পাইথন অবজেক্ট স্ট্রাকচার সিরিয়ালাইজ এবং ডিসিরিয়ালাইজ করার জন্য ব্যবহৃত হয়। অন্য কথায়, এটি একটি পাইথন অবজেক্টকে বাইট 스트িমে রূপান্তর করার প্রক্রিয়া যাতে এটি ফাইল/ডাটাবেসে সংরক্ষণ করা যায়, সেশন জুড়ে প্রোগ্রাম স্টেট রক্ষা করা যায়, বা নেটওয়ার্কের মাধ্যমে ডেটা ট্রান্সপোর্ট করা যায়।
এই আর্টিকেলে, আমরা দেখব কিভাবে একটি ডজ্যাঙ্গো ফিল্ড তৈরি করা যায় যা পিকল অবজেক্ট সংরক্ষণ করবে। আমরা শুধু models.py এবং ডজ্যাঙ্গো শেলের সাথে কাজ করব।
প্রথমে django-picklefield প্যাকেজ ইনস্টল করুন:
pip install django-picklefield
উদাহরণ
models.py-তে:
from django.db import models
from picklefield.fields import PickledObjectField
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()
আমরা শেল রান করেছি এবং একটি নতুন মডেল ইনস্ট্যান্স তৈরি করেছি যা পিকল অবজেক্ট সংরক্ষণ করতে পারে। সেটিতে সংরক্ষিত যেকোনো অবজেক্ট একটি পিকল অবজেক্টে রূপান্তরিত হবে।
মডেলসে সেভ করতে আপনি এইরকম লিখতে পারেন:
from django.http import HttpResponse
def my_view(request):
Object = new_model(args=['fancy', {'name': 'ath'}])
Object.save()
return HttpResponse("Object saved")
আপনি এই ফিল্ডে যেকোনো পিকল অবজেক্ট বা যেকোনো পিকল করা যায় এমন জিনিস যোগ করতে পারেন।
আউটপুট
In [4]: new_model.objects.all() Out[4]:]>