0Pricing
DevOps Bootcamp · บทเรียน

ตัวแปรและนิพจน์ใน Jinja2

แทรกค่าลงในเทมเพลต

ตัวแปรและนิพจน์ใน Jinja2 เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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'] }}

เข้าถึงรายการด้วยดัชนี

เลือกหนึ่งรายการจาก list ด้วยตำแหน่งของรายการ โดยเริ่มนับจากศูนย์ {{ servers[0] }} จะให้รายการแรกแก่คุณ

primary = {{ servers[0] }}
backup = {{ servers[1] }}

ใช้ข้อมูลข้อเท็จจริงของ Ansible

ข้อมูลข้อเท็จจริงที่รวบรวมมาเป็นเพียงตัวแปร ดังนั้นเทมเพลตก็อ่านข้อมูลเหล่านั้นได้เช่นกัน ansible_hostname จะใส่ชื่อของโฮสต์นั้นลงในไฟล์

# This host is {{ ansible_hostname }}
bind {{ ansible_default_ipv4.address }}

คณิตศาสตร์ในนิพจน์

Jinja2 ทำเลขคณิตภายในวงเล็บปีกกาได้ คุณสามารถคำนวณค่าแทนการกำหนดค่าตายตัว เช่น การเพิ่มจำนวนผู้ปฏิบัติงานเป็นสองเท่า

max_workers {{ cpu_count * 2 }}

การต่อสตริง

เชื่อมสตริงด้วยตัวดำเนินการ ~ ซึ่งนำส่วนต่าง ๆ มาต่อกันได้ไม่ว่าชนิดข้อมูลจะเป็นอะไร ต่างจากเครื่องหมายบวกที่ใช้กับตัวเลข

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' }}

รูปแบบวงเล็บปีกกาสามแบบ

จำสามรูปแบบนี้ไว้: {{ }} ใช้พิมพ์ค่า, {% %} ใช้เรียกใช้ตรรกะ และ {# #} ใช้เก็บข้อคิดเห็น แต่ละแบบมีหน้าที่ของตนเอง

ตรวจสอบอย่างรวดเร็ว

คุณต้องการให้เทมเพลตแสดงค่าที่เก็บอยู่ในตัวแปร ตัวคั่นแบบใดใช้พิมพ์ค่านั้น

สรุปทบทวน

ตอนนี้คุณสามารถอ่านตัวแปร ข้อมูลข้อเท็จจริง คีย์ของพจนานุกรม และรายการใน list จากเทมเพลต ทำเลขคณิต ต่อสตริง และเพิ่มข้อคิดเห็นได้แล้ว นิพจน์ทำให้การกำหนดค่ามีชีวิตชีวา ✨

คำถามที่พบบ่อย

บทเรียน “ตัวแปรและนิพจน์ใน Jinja2” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตัวแปรและนิพจน์ใน Jinja2” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรและนิพจน์ใน Jinja2”

แทรกค่าลงในเทมเพลต คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ตัวแปรและนิพจน์ใน Jinja2” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โมดูล template และไฟล์ .j2
  2. ตัวแปรและนิพจน์ใน Jinja2
  3. ลูปและบล็อก if ในเทมเพลต
  4. ฟิลเตอร์: default, join และ upper
← กลับไปที่ DevOps Bootcamp