如何将指定Jinja2模板代码片段转换为Django模板代码
转换说明
你提供的是Flask生态下的Jinja2代码,转Django模板需要做以下调整:
- 替换Flask特有的
request.endpoint为Django对应的路由名称属性request.resolver_match.url_name - Django模板if判断不需要用括号包裹单个判断条件,直接拼接多条件即可
- Django POST表单必须添加
{% csrf_token %}标签做跨站请求校验,否则提交会触发403错误 - 如果模板无法读取request对象,需要确认项目
settings.py的TEMPLATES.OPTIONS.context_processors配置中已添加django.template.context_processors.request
转换后完整代码
{% if request.resolver_match.url_name == 'venues' or request.resolver_match.url_name == 'search_venues' or request.resolver_match.url_name == 'show_venue' %} <form class="search" method="post" action="/venues/search"> {% csrf_token %} <input class="form-control" type="search" name="search_term" placeholder="Find a venue" aria-label="Search"> </form> {% endif %}
内容的提问来源于stack exchange,提问作者Fayyad Salahat
相关产品推荐
相关产品推荐

