คำถามติดแท็ก jinja2

Jinja2 เป็นเครื่องมือเทมเพลตที่รวดเร็วสำหรับ Python มีการสนับสนุน Unicode เต็มรูปแบบการหลีกเลี่ยงอัตโนมัติการสืบทอดมาโครและคุณสมบัติอื่น ๆ อีกมากมาย


3
ตั้งค่าตัวแปรใน jinja
ฉันต้องการทราบว่าฉันจะตั้งค่าตัวแปรด้วยตัวแปรอื่นใน jinja ได้อย่างไร ฉันจะอธิบายฉันมีเมนูย่อยและฉันต้องการแสดงว่าลิงก์ใดใช้งานได้ ฉันลองสิ่งนี้: {% set active_link = {{recordtype}} -%} โดยที่ recordtype เป็นตัวแปรที่กำหนดให้กับเทมเพลตของฉัน

6
ใน Jinja2 คุณจะทดสอบว่าตัวแปรไม่ได้กำหนดไว้อย่างไร
การแปลงจาก Django ฉันเคยทำสิ่งนี้: {% if not var1 %} {% endif %} และให้มันทำงานถ้าฉันไม่ได้ใส่ var1 ลงในบริบท Jinja2 ทำให้ฉันมีข้อผิดพลาดที่ไม่ได้กำหนด มีวิธีง่าย ๆ ในการพูด{% if var1 == None %}หรือสิ่งที่คล้ายกัน?
191 jinja2 

8
ฉันจะจัดรูปแบบวันที่ใน Jinja2 ได้อย่างไร
ใช้ Jinja2 ฉันจะจัดรูปแบบเขตข้อมูลวันที่ได้อย่างไร ฉันรู้ใน Python ฉันสามารถทำสิ่งนี้: print(car.date_of_manufacture.strftime('%Y-%m-%d')) แต่ฉันจะจัดรูปแบบวันที่ใน Jinja2 ได้อย่างไร
183 python  jinja2 

2
Jinja2 ชวเลขเงื่อนไข
พูดว่าฉันมีสิ่งนี้: {% if files %} Update {% else %} Continue {% endif %} ใน PHP พูดว่าฉันสามารถเขียนเงื่อนไขชวเลขเหมือน: <?php echo $foo ? 'yes' : 'no'; ?> มีวิธีที่ฉันสามารถแปลสิ่งนี้ให้ทำงานในเทมเพลต jinja2 ได้ไหม: 'yes' if foo else 'no'
180 python  jinja2 

4
วิธีการส่งออกรายการคั่นด้วยจุลภาคในแม่แบบ jinja python?
ถ้าฉันมีรายการusersพูด["Sam", "Bob", "Joe"]ฉันต้องการทำบางสิ่งที่ฉันสามารถส่งออกในไฟล์เทมเพลต jinja ของฉัน: {% for user in userlist %} <a href="/profile/{{ user }}/">{{ user }}</a> {% if !loop.last %} , {% endif %} {% endfor %} ฉันต้องการทำให้แม่แบบผลลัพธ์เป็น: Sam, Bob, Joe ฉันลองใช้รหัสข้างต้นเพื่อตรวจสอบว่ามันอยู่ในการวนซ้ำครั้งล่าสุดของลูปหรือไม่ถ้าไม่ก็อย่าใส่เครื่องหมายจุลภาค แต่มันใช้ไม่ได้ ฉันจะทำสิ่งนี้ได้อย่างไร
179 python  jinja2 

3
วิธีการส่งออก loop.counter ใน python jinja แม่แบบ
ฉันต้องการที่จะสามารถส่งออกวนซ้ำปัจจุบันในแม่แบบของฉัน ตามเอกสาร: http://wsgiarea.pocoo.org/jinja/docs/loops.htmlมีตัวแปร loop.counter ที่ฉันพยายามใช้ ฉันมีดังต่อไปนี้: <ul> {% for user in userlist %} <li> {{ user }} {{loop.counter}} </li> {% if loop.counter == 1 %} This is the First user {% endif %} {% endfor %} </ul> แม้ว่าจะไม่มีการส่งออกไปยังแม่แบบของฉัน ไวยากรณ์ที่ถูกต้องคืออะไร?
169 python  jinja2 

5
การส่ง HTML ไปยังเทมเพลตโดยใช้ Flask / Jinja2
ฉันสร้างผู้ดูแลระบบสำหรับขวดและ SQLAlchemy และฉันต้องการที่จะผ่าน HTML render_templateสำหรับปัจจัยการผลิตที่แตกต่างกันไปที่มุมมองของฉันโดยใช้ เฟรมเวิร์กการสร้างเท็มเพลตดูเหมือนว่าจะหลบหนี html โดยอัตโนมัติดังนั้น <"'> ทั้งหมดจะถูกแปลงเป็นเอนทิตี html ฉันจะปิดการใช้งานเพื่อให้ HTML แสดงอย่างถูกต้องได้อย่างไร
163 python  jinja2  flask 

9
ตัวแปรเท็มเพลต Jinja2 หากไม่มีวัตถุตั้งค่าเริ่มต้น
วิธีการทำให้ตัวแปรใน jijna2 เป็นค่าเริ่มต้นเป็น "" ถ้าวัตถุไม่มีแทนการทำอะไรเช่นนี้? {% if p %} {{ p.User['first_name']}} {% else %} NONE {%endif %} ดังนั้นถ้า object p เป็น None ฉันต้องการเริ่มต้นค่า p (ชื่อและนามสกุล) เป็น "" เป็นพื้น nvl(p.User[first_name'], "") รับข้อผิดพลาด: Error: jinja2.exceptions.UndefinedError UndefinedError: 'None' has no attribute 'User'
146 jinja2 

12
เรียกใช้ฟังก์ชันหลามจาก jinja2
ฉันใช้ jinja2 และฉันต้องการเรียกใช้ฟังก์ชันหลามเป็นผู้ช่วยโดยใช้ไวยากรณ์ที่คล้ายกันราวกับว่าฉันกำลังเรียกแมโคร ดูเหมือนว่า jinja2 จะป้องกันไม่ให้ฉันเรียกใช้ฟังก์ชันและยืนยันว่าฉันทำซ้ำตัวเองด้วยการคัดลอกฟังก์ชันลงในเทมเพลตเป็นมาโคร มีวิธีที่ตรงไปตรงมาในการทำเช่นนี้? และมีวิธีใดที่จะนำเข้าชุดฟังก์ชั่นหลามทั้งชุดและให้พวกเขาสามารถเข้าถึงได้จาก jinja2 โดยไม่ต้องผ่าน rigamarole จำนวนมากทั้งหมด (เช่นเขียนส่วนขยาย)
144 python  jinja2 

9
ฉันจะส่งข้อมูลจาก Flask ไปยัง JavaScript ในเทมเพลตได้อย่างไร
แอปของฉันโทรไปยัง API ที่ส่งคืนพจนานุกรม ฉันต้องการส่งข้อมูลจากคำสั่งนี้ไปยัง JavaScript ในมุมมอง ฉันใช้ Google Maps API ใน JS โดยเฉพาะดังนั้นฉันจึงต้องการส่งรายการสิ่งต่อไปนี้ที่มีข้อมูล long / lat ฉันรู้ว่าrender_templateจะส่งตัวแปรเหล่านี้ไปยังมุมมองเพื่อให้สามารถใช้ใน HTML ได้ แต่ฉันจะส่งต่อไปยัง JavaScript ในเทมเพลตได้อย่างไร from flask import Flask from flask import render_template app = Flask(__name__) import foo_api api = foo_api.API('API KEY') @app.route('/') def get_data(): events = api.call(get_event, arg0, arg1) geocode = event['latitude'], …

2
แปลงจำนวนเต็มเป็นสตริง Jinja
ฉันมีจำนวนเต็ม {% set curYear = 2013 %} ใน {% if %}คำสั่งฉันต้องเปรียบเทียบกับสตริง ฉันไม่สามารถตั้งค่าcurYearเป็นสตริงที่จุดเริ่มต้นได้เพราะฉันต้องลดค่าเป็นลูป ฉันจะแปลงได้อย่างไร?
122 python  jinja2  nunjucks 

10
โหลดแอพ Flask ใหม่เมื่อไฟล์เทมเพลตเปลี่ยน
โดยค่าเริ่มต้นเมื่อเรียกใช้แอปพลิเคชัน Flask โดยใช้เซิร์ฟเวอร์ในตัว ( Flask.run) จะตรวจสอบไฟล์ Python และโหลดแอปซ้ำโดยอัตโนมัติหากรหัสเปลี่ยนแปลง: * Detected change in '/home/xion/hello-world/app.py', reloading * Restarting with reloader น่าเสียดายที่ดูเหมือนว่าจะใช้ได้กับไฟล์* .pyเท่านั้นและดูเหมือนว่าฉันจะไม่พบวิธีใดในการขยายฟังก์ชันนี้ไปยังไฟล์อื่น ๆ ที่สำคัญที่สุดคือการให้ Flask รีสตาร์ทแอปเมื่อเทมเพลตเปลี่ยนไปจะมีประโยชน์อย่างยิ่ง ฉันนับไม่ได้ว่ากี่ครั้งแล้วที่ฉันเล่นซอกับมาร์กอัปในเทมเพลตและสับสนโดยไม่เห็นการเปลี่ยนแปลงใด ๆ เพียงเพื่อจะพบว่าแอปยังคงใช้เทมเพลต Jinja เวอร์ชันเก่าอยู่ ดังนั้นมีวิธีใดบ้างที่จะมีไฟล์มอนิเตอร์ Flask ในไดเร็กทอรีtemplateหรือไม่หรือต้องดำน้ำในซอร์สของเฟรมเวิร์ก แก้ไข : ฉันใช้ Ubuntu 10.10 ยังไม่ได้ลองใช้บนแพลตฟอร์มอื่นจริงๆ หลังจากสอบถามเพิ่มเติมฉันพบว่าการเปลี่ยนแปลงในเทมเพลตได้รับการอัปเดตตามเวลาจริงโดยไม่ต้องโหลดแอปซ้ำ อย่างไรก็ตามดูเหมือนว่าจะใช้กับเทมเพลตที่ส่งผ่านไปflask.render_templateเท่านั้น แต่มันก็เกิดขึ้นที่ในแอพของฉันฉันมีส่วนประกอบที่ใช้ซ้ำได้จำนวนมากซึ่งฉันใช้ในเทมเพลต Jinja มีการใช้งานเป็น{% macro %}s โดยอาศัยอยู่ใน "โมดูล" เฉพาะและได้รับการ{% import %}แก้ไขในหน้าเว็บจริง …
96 python  flask  jinja2 

2
ลิงก์ไปยังไฟล์คงที่ของ Flask ด้วย url_for
คุณใช้url_forใน Flask เพื่ออ้างอิงไฟล์ในโฟลเดอร์อย่างไร? ตัวอย่างเช่นฉันมีไฟล์คงที่ในstaticโฟลเดอร์ซึ่งบางไฟล์อาจอยู่ในโฟลเดอร์ย่อยเช่นstatic/bootstrap. เมื่อฉันพยายามให้บริการไฟล์จากstatic/bootstrapฉันได้รับข้อผิดพลาด <link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}"> ฉันสามารถอ้างอิงไฟล์ที่ไม่ได้อยู่ในโฟลเดอร์ย่อยด้วยสิ่งนี้ซึ่งได้ผล <link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}"> วิธีที่ถูกต้องในการอ้างอิงไฟล์แบบคงที่url_forคืออะไร? ฉันจะใช้url_forสร้าง url ไปยังไฟล์แบบคงที่ได้อย่างไร?
93 python  flask  jinja2 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.