Saya mencoba melakukan sesuatu seperti di Python
("db.%s.dump" % n for n in names)
Saya mencoba
{{ databases | map("format", "db.%s.dump") }}
{{ "db.%s.dump" | map("format", databases) }}
dan banyak lagi. Semua yang saya coba gagal.
Dokumentasi tidak membantu :-(
kenapa tidak {% for n in names %} {{ "db.%s.dump"|format(n) }} {% endfor %}
?
@NormanDenayer tidak apa-apa kecuali jika Anda ingin meneruskannya ke filter lain di map().
Secara pribadi saya mengakhiri dengan menulis plugin sendiri:
from jinja2.utils import soft_unicode
def format_string(text, fmt, *kw):
return soft_unicode(fmt).format(text, *kw)
class FilterModule(object):
def filters(self):
return dict(format_string=format_string)
Penggunaan:
list_of_names | map('format_string', 'hello {}!')
Lihat https://github.com/pallets/jinja/pull/906#issuecomment -548393215 untuk mengetahui alasan saya menolak ini. Ini juga berisi filter yang dapat melakukannya, atau Anda dapat menulis filter yang lebih spesifik seperti yang ditunjukkan di atas.
Komentar yang paling membantu
@NormanDenayer tidak apa-apa kecuali jika Anda ingin meneruskannya ke filter lain di map().