如何解决Django/Jinja:有没有办法在 Jinja 的宏函数中传递 JS 变量例如 window.visualViewport.width?
所以,问题是我想将变量 window.visualViewport.width
传递给后端,以便我可以根据屏幕尺寸的宽度从后端动态发送不同的字符串图像。
这是我的宏:
{# window_width variable should be dynamic #}
{%- macro get_dynamic_text(window_width='......') -%}
<div style="background: {{ get_window_size(window_width)|safe }}">
......
......
</div>
{%- endmacro -%}
这是我的后端库函数
@library.global_function
def get_data_bg(width):
if width >= 1200:
return 'large_desktop.png'
elif 992 <= width < 1200:
return 'medium desktop'
elif 768 <= width < 992:
return 'tablet.png'
else:
return 'mobile.png'
我确实尝试过像这样使用 JS,但没有奏效。它只是将纯文本 (document.write(window.visualViewport.width)) 发送到没有用的后端库函数:
{# window_width variable should be dynamic #}
{%- macro get_dynamic_text(window_width='<script>document.write(window.visualViewport.width)</script>') -%}
<div style="background: {{ get_window_size(window_width)|safe }}">
......
......
</div>
{%- endmacro -%}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。