2012-10-01 13 views
31

jinja2'de ondalık sayıları biçimlendirmem gerekiyor. Ben tarih biçimi için gerektiğindejinja2 format numaralarına doğrudan bir yaklaşım var mı?

, böyle, benim şablonunda strftime() yöntemini çağırın: sayıların üzerine bunu yapmak için de benzer bir yaklaşım varsa

{{ somedate.strftime('%Y-%m-%d') }} 

merak ediyorum.

Şimdiden teşekkürler!

+3

Eğer '{{ "{0: 0.2f}" biçiminde (my_num)}.} Yapamaz' veya '{{my_num | biçimi "% 0.2f"}}' (http: // wsgiarea .pocoo.org/jinja/docs/filters.html # biçiminde) –

+0

teşekkürler Joran. İlk öneri Tamam çalışıyor, ancak bunu yapıyor: {{my_num | format "% 0.2f"}} bir istisna veriyor. – Lucas

+0

@Lucas @ JoranBeasley'in yorumundaki filtreli örnek, öne doğrudur; "% 0.2f" olmalıdır. biçimi (my_num) '. Http://jinja.pocoo.org/docs/dev/templates/#format – Sam

cevap

42

Sadece böyle yapmak, Python yolu: bu yöntemi kullanarak

{{ '%04d' % 42 }} 

{{ 'Number: %d' % variable }} 

Veya: tam olarak Python gibi bu yana

{{ '%d' | format(42) }} 

Ben şahsen ilkini tercih ederim.

+0

belgesine, string formatı yönteminin amortismana tabi tutulduğunu ve mümkünse kaçınılması gerektiğini (sanırım ... ya da bunun gibi bir şey ...) –

+1

http : //docs.python.org/release/3.0.1/whatsnew/2.6.html#pep-3101 –

+0

@JoranBeasley her iki durumda da en son sürüm 2.7’de GAE’de onaylanmadı ve önümüzdeki birkaç yıl içinde Google'dan sürüm 3.0'ı açmak için herhangi bir plana bakın .. Biraz zaman alacaktır :) – Lipis

8

verilen bir hassasiyet kullanımına numara yuvarlak izin verecek yuvarlak Şunları kullanabilirsiniz geçerli:

round(value, precision=0, method='common') 

Birinci parametre hassasiyeti belirtir (varsayılan 0'dır), ikinci yuvarlama yöntemi Kendisinden 3 seçim yapabilirsiniz:

'common' rounds either up or down 
'ceil' always rounds up 
'floor' always rounds down 
20

ben o iyi çözümü bulmak çünkü Joran Beasley yorumuna vurgulamak istiyorum:

Orijinal açıklama: 01 (Wsgiarea.pocoo.org/jinja/docs | veya {biçim "% 0.2f"} {my_num}:

sen {. Biçimi (my_num)} { "0.2f} {0"} yapamaz /filters.html#format) - Joran Beasley 1 Ekim 21'de '12: 07`

Nitekim eserler fevkalade.

Bu yalnızca python dize biçimlendirmesidir. İlk argüman verildiğinde, {0}, formatı 0.2f ile formatlayın.

4

Biçimlendirme ve doldurma aynı şekilde iyi çalışır.

{{ "{0}".format(size).rjust(15) }} 
İlgili konular