Jinja: كيف يتم تطبيق "تنسيق" على قائمة السلاسل؟

تم إنشاؤها على ١٦ فبراير ٢٠١٦  ·  4تعليقات  ·  مصدر: pallets/jinja

أحاول أن أفعل شيئًا مثل بايثون

("db.%s.dump" % n for n in names)

حاولت

{{ databases | map("format", "db.%s.dump") }}
{{ "db.%s.dump" | map("format", databases) }}

والكثير. كل ما حاولت باءت بالفشل.

التوثيق لا يساعد :-(

التعليق الأكثر فائدة

NormanDenayer لا بأس إلا إذا كنت تريد تمريره إلى مرشح آخر في الخريطة ().

ال 4 كومينتر

لماذا لا {% for n in names %} {{ "db.%s.dump"|format(n) }} {% endfor %} ؟

NormanDenayer لا بأس إلا إذا كنت تريد تمريره إلى مرشح آخر في الخريطة ().

أنا شخصياً انتهيت من كتابة البرنامج المساعد الخاص:

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)

استعمال:

list_of_names | map('format_string', 'hello {}!')

راجع https://github.com/pallets/jinja/pull/906#issuecomment -548393215 لمعرفة سبب رفضي لهذا. يحتوي أيضًا على مرشح يمكنه تحقيق ذلك ، أو يمكنك كتابة مرشح أكثر تحديدًا كما هو موضح أعلاه.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات