المتغيرات والتعبيرات في Jinja2
أدرج القيم في القالب
المتغيرات والتعبيرات في Jinja2 درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
المتغيرات داخل القوالب
كل متغير متاح في play متاح أيضًا داخل القالب. ما عليكم سوى إحاطة اسمه بـ{{ }} لطباعة قيمته. 🌟
server_name {{ domain }};
worker_processes {{ cpu_count }};الوصول إلى مفاتيح القاموس
للوصول إلى مفتاح في متغير قاموس، استخدموا صيغة النقطة أو الأقواس. يعيد كل من db.host وdb['host'] القيمة نفسها.
host = {{ db.host }}
port = {{ db['port'] }}الفهرسة داخل قائمة
اختاروا عنصرًا من قائمة حسب موضعه، بدءًا من الصفر. تمنحكم {{ servers[0] }} أول قيمة.
primary = {{ servers[0] }}
backup = {{ servers[1] }}استخدام Ansible facts
إن facts التي جُمعت ليست سوى متغيرات، لذلك يمكن للقوالب قراءتها أيضًا. يضع ansible_hostname اسم المضيف نفسه داخل الملف.
# This host is {{ ansible_hostname }}
bind {{ ansible_default_ipv4.address }}الحساب في التعبيرات
ينفذ Jinja2 العمليات الحسابية داخل الأقواس. يمكنكم حساب قيمة بدلًا من كتابتها ثابتة، مثل مضاعفة عدد worker.
max_workers {{ cpu_count * 2 }}ضم السلاسل النصية
ادمجوا السلاسل النصية باستخدام العامل ~. فهو يلصق الأجزاء معًا بغض النظر عن نوعها، بخلاف plus الذي يُستخدم للأرقام.
url = http://{{ host ~ ':' ~ port }}تعبيرات المقارنة
يمكن للتعبيرات اختبار الأمور أيضًا. فالمقارنات مثل cpu_count > 4 تعيد true أو false لاستخدامهما لاحقًا في المنطق.
{{ http_port == 443 }}
{{ replicas >= 3 }}التعليقات في القوالب
ضعوا ملاحظاتكم داخل {# ... #}. يزيلها Jinja2 بالكامل، لذلك لا تظهر مطلقًا في الملف المعالَج.
{# This file is managed by Ansible #}
listen {{ http_port }};تفشل المتغيرات غير المعرّفة
افتراضيًا، يؤدي استخدام متغير غير موجود إلى إيقاف الـplay مع ظهور خطأ undefined variable. يتعمد Jinja2 التشدد في هذا الجانب.
اقتبسوا السلاسل النصية بعناية
تحتاج السلسلة النصية الحرفية داخل التعبير إلى علامات اقتباس. من دونها، يتعامل Jinja2 مع prod على أنه اسم متغير، لا على أنه النص prod.
{{ 'production' if env == 'prod' else 'staging' }}أنواع الأقواس الثلاثة
تذكروا الأنواع الثلاثة: تطبع {{ }} قيمة، وتشغّل {% %} المنطق، وتحتوي {# #} على تعليق. لكل نوع وظيفة خاصة.
تحقق سريع
تريدون أن يطبع القالب القيمة المخزنة في متغير. أي محدِّد يطبعها؟
مراجعة
يمكنكم الآن قراءة المتغيرات وfacts ومفاتيح القواميس وعناصر القوائم في القوالب، وإجراء الحسابات وضم السلاسل النصية وإضافة التعليقات. تمنح التعبيرات ملفات الإعداد حياة. ✨
الأسئلة الشائعة
هل درس «المتغيرات والتعبيرات في Jinja2» مجاني؟
نعم — نص درس «المتغيرات والتعبيرات في Jinja2» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «المتغيرات والتعبيرات في Jinja2»؟
أدرج القيم في القالب تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «المتغيرات والتعبيرات في Jinja2»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- وحدة template وملفات .j2
- المتغيرات والتعبيرات في Jinja2
- الحلقات وكتل if في القوالب
- المرشحات: default وjoin وupper