慕尼黑的夜晚无繁华
所以对于我们这些使用 Python 和 Django 框架开发网站的人来说,有一个叫做 jinja 的很棒的工具,它可以用作模板引擎。例如:而不是像这样对导入进行硬编码:<script src="assets/js/onebutton.js"></script>我们可以完成这个:<script src="{% static 'assets/js/onebutton.js' %}"></script>在这种情况下,它会自动搜索名为 static 的文件夹并进入内部查找所需的代码。但是为什么不能在 Javascript 中使用 jinja 模板。例如:主页.html<script src='whatever.js'></script><p>Another example</p><button id="clickme"> click me </button>无论如何.js$(function(){$('#clickme').click(function(){$.ajax({ headers : {'X-CSRFToken': getCookie('csrftoken')}, type: "POST", url: '{% url "func" %}', //<--Problem arise here datatype:"json", data: {}, success: function(data){ var new_template = '<h1> %firstmsg% </h1>'; var new_frontend = new_template.replace('%firstmsg%',data.message); console.log(new_frontend); document.getElementById('wor').innerHTML+=new_frontend; } });}}Django 会将 AJAX 请求中的 url 识别/'{% url "func" %}'为/func解决这个问题的唯一方法是将整个代码从移动whatever.js到homepage.html在一个<script></script>块中。也许我们需要导入一些东西才能让 Jinja 模板工作?