إذا كنت تريد التعرف على أفضل أنواع الحبوب للمبرمجين، والتي يعتبر Cocoa Pebbles هو البطل الحاكم فيها؟، فأنت في مشاركة المدونة الصحيحة. أنا فقط أمزح! سنتعمق اليوم في شيء أفضل: مُسلسلات جانغو ️ ستجعل التعامل مع بياناتك أكثر سلاسة من الحبوب المفضلة لديك! على استعداد لأزمة في ذلك؟ دعنا نذهب! ?
إذا كنت منغمسًا في تطوير Django، فمن المحتمل أنك صادفت مُسلسلات. للوهلة الأولى، قد تبدو وكأنها مفهوم معقد ومخيف، خاصة عندما تقوم بغربلة الوثائق أو مشاهدة مقاطع الفيديو التعليمية. لكن لا تقلق، في الواقع، مُسلسلات Django أبسط بكثير مما تبدو عليه. دعونا نقسمها ونزيل الغموض عن هذا المكون الأساسي لإطار عمل Django REST.
في جوهرها، تعد مُسلسلات Django أدوات تقوم بتحويل أنواع البيانات المعقدة، مثل نماذج Django، إلى أنواع بيانات Python التي يمكن تقديمها بسهولة إلى JSON أو XML أو أنواع محتوى أخرى. كما أنها تعمل أيضًا بشكل عكسي، حيث تحول البيانات الواردة من تنسيقات مثل JSON مرة أخرى إلى كائنات Django.
ببساطة، تعمل أدوات التسلسل على سد الفجوة بين نماذج Django والبيانات المتوقعة من الواجهة الأمامية (أو أي مستهلك آخر).
لنبدأ بنموذج جانغو الأساسي الذي يمثل كتابًا في المكتبة:
from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) published_date = models.DateField() isbn = models.CharField(max_length=13)
هذا النموذج واضح ومباشر - فهو يحتوي على حقول للعنوان والمؤلف وتاريخ النشر ورقم ISBN للكتاب. الآن، لنقم بإنشاء مُسلسل لهذا النموذج.
لتحويل هذا النموذج إلى JSON (أو أي تنسيق آخر)، نستخدم مُسلسل Django. هناك طريقة بسيطة للقيام بذلك وهي استخدام المتسلسلات.ModelSerializer:
from rest_framework import serializers from .models import Book class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = ['title', 'author', 'published_date', 'isbn']
هنا، يرث BookSerializer من serializers.ModelSerializer، الذي يقوم تلقائيًا بإنشاء مُسلسِل لنموذج الكتاب. تخبر فئة Meta Django بالنموذج الذي سيتم إجراء تسلسل له والحقول التي يجب تضمينها.
ماذا لو كنت بحاجة إلى مزيد من التحكم؟ على سبيل المثال، إذا كنت تريد التحقق من صحة رقم ISBN أو إضافة حقول مخصصة، فيمكنك استخدام serializers.Serializer بدلاً من ذلك. وإليك الطريقة:
class CustomBookSerializer(serializers.Serializer): title = serializers.CharField(max_length=100) author = serializers.CharField(max_length=100) published_date = serializers.DateField() isbn = serializers.CharField(max_length=13) def validate_isbn(self, value): if len(value) != 13: raise serializers.ValidationError("ISBN must be 13 characters long") return value
في هذا المثال، يمنحك CustomBookSerializer التحكم الكامل في كل حقل وكيفية التعامل معه. يمكنك إضافة تحقق مخصص، مثل التأكد من أن رقم ISBN يتكون من 13 حرفًا بالضبط.
قد تبدو مُسلسلات Django معقدة في البداية، ولكن مع اتباع النهج الصحيح، يمكن أن تكون أداة قوية بشكل لا يصدق للتعامل مع البيانات في تطبيقاتك. سواء كنت تعمل مع أدوات التسلسل. استمر في تجربة هذه الأدوات، وستجد قريبًا أنها تجعل تطوير Django الخاص بك أكثر سلاسة وكفاءة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3