یکی از ویژگیهای مهم در Flask 3.0 استفاده از Serializer ها برای مدیریت دادهها است. این ویژگی به برنامهنویسان امکان میدهد تا با دادههایی که به شکل JSON ارسال یا دریافت میشوند، به صورت بهینه کار کنند. یکی از این Serializer های کاربردی، TaggedJSONSerializer.register()
است که در این متن به بررسی عملکرد و نحوه استفاده از آن میپردازیم.
تابع register()
در شیء TaggedJSONSerializer
به شما اجازه میدهد تا انواع دادههای سفارشی خود را برای JSON serialization ثبت کنید. این قابلیت زمانی مفید است که نیاز دارید دادههایی با ساختار پیچیدهتر از انواع پایهای JSON را مدیریت کنید. فرض کنید که شما بخشی از دادههایی را دارید که شامل اطلاعات پیچیدهتر از قبیل اشیاء Python میشود، در این حالت register()
میتواند به شما کمک کند تا این اشیاء را قبل از ارسال به سمت کاربر، به یک ساختار قابل فهم برای JSON تبدیل کنید.
برای به دست آوردن بهترین نتایج هنگام کار با این تابع، باید از نوع داده و ساختاری که میخواهید به JSON تبدیل کنید آگاه باشید. اگر بتوانید با دقت دادههای مخصوص را انتخاب و serialize کنید، میتوانید پیچیدگیهای احتمالی هنگام کار با JSON را کاهش دهید.
در ادامه، نمونه کدی را آوردهایم که نشان میدهد چگونه میتوانید از TaggedJSONSerializer.register()
استفاده کنید. این مثال به شما کمک میکند تا با نگاهی ساده و مفید این مفهوم را در برنامههای خود اعمال کنید.
نمونه کد
from flask.json import TaggedJSONSerializer
from flask import Flask
app = Flask(__name__)
serializer = TaggedJSONSerializer()
# تعریف تابع برای serialization و deserialization
class CustomObject:
def __init__(self, name):
self.name = name
def to_json(self):
return {'name': self.name}
@app.route('/')
def index():
obj = CustomObject(name='Sample')
serialized = serializer.dumps(obj.to_json())
return serialized
# ثبت نوع CustomObject
serializer.register(CustomObject, CustomObject.to_json, CustomObject)
توضیح خط به خط کد
from flask.json import TaggedJSONSerializer
<br> با این خط کتابخانه مربوط به JSON Serializer با استفاده از Flask وارد میکنیم. <br>
from flask import Flask
<br> وارد کردن کلاس Flask برای ایجاد اپلیکیشن وب. <br>
app = Flask(__name__)
<br> ساخت یک نمونه از اپلیکیشن وب Flask که به نام برنامه فعلی نامگذاری شده است. <br>
serializer = TaggedJSONSerializer()
<br> ایجاد یک نمونه از شیء TaggedJSONSerializer برای مدیریت serialization JSON. <br>
class CustomObject:
<br> تعریف یک کلاس ساده تحت عنوان CustomObject. <br>
def __init__(self, name):
<br> تعریف تابع سازنده برای کلاس، که پارامتری به نام name دریافت میکند. <br>
def to_json(self):
<br> تعریف تابعی برای تبدیل شئ به فرمت JSON. <br>
@app.route('/')
<br> تعریف route اصلی برای اپلیکیشن وب Flask. <br>
def index():
<br> تابع نمایش برای route اصلی تعریف شده. <br>
obj = CustomObject(name='Sample')
<br> ایجاد یک نمونه از شئ CustomObject با نام Sample. <br>
serialized = serializer.dumps(obj.to_json())
<br> تبدیل شئ به فرمت JSON و سپس serialization آن. <br>
return serialized
<br> برگرداندن دادهی serialized به سمت کاربر. <br>
serializer.register(CustomObject, CustomObject.to_json, CustomObject)
<br> ثبت کلاس CustomObject برای Serialization به JSON از طریق تابع register.