これは他の質問Python Jinja2 call to macro results in (undesirable) newlineの拡張です。Python Jinja2マクロの空白の問題
私のPythonプログラムが
import jinja2
template_env = jinja2.Environment(trim_blocks=True, lstrip_blocks=True, autoescape=False, undefined=jinja2.StrictUndefined)
template_str = '''
{% macro print_car_review(car) %}
{% if car.get('review') %}
{{'Review: %s' % car['review']}}
{% endif %}
{% endmacro %}
hi there
car {{car['name']}} reviews:
{{print_car_review(car)}}
2 spaces before me
End of car details
'''
ctx_car_with_reviews = {'car':{'name':'foo', 'desc': 'foo bar', 'review':'good'}}
ctx_car_without_reviews = {'car':{'name':'foo', 'desc': 'foo bar'}}
print 'Output for car with reviews:'
print template_env.from_string(template_str).render(ctx_car_with_reviews)
print 'Output for car without reviews:'
print template_env.from_string(template_str).render(ctx_car_without_reviews)
実際の出力です:
Output for car with reviews:
hi there
car foo reviews:
Review: good
2 spaces before me
End of car details
Output for car without reviews:
hi there
car foo reviews:
2 spaces before me
End of car details
予想される出力:
(車1台)先頭に余分な改行が望ましくないさ何Output for car with reviews:
hi there
car foo reviews:
Review: good
2 spaces before me
End of car details
Output for car without reviews:
hi there
car foo reviews:
2 spaces before me
End of car details
と'私の前の2スペース'の前の余分な行
ありがとうラグ
空白を削除したい場合や空白を残したい場合は、 – SumanKalyan
@SumanKalyan私は予想される結果を明確に述べるために質問を修正しました。今すぐ明らかにしたいと思っています。 –
@RagsRachamaduguは、あなたの変更された質問に答えるために私の答えを編集しました。 – coralvanda