ตัวแปรและนิพจน์ใน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โมดูล template และไฟล์ .j2
- ตัวแปรและนิพจน์ใน Jinja2
- ลูปและบล็อก if ในเทมเพลต
- ฟิลเตอร์: default, join และ upper