What is the recommended way to create dynamic URLs in Javascript files when using flask? In the jinja2 templates and within the python views url_for
is used, what is the recommended way to do this in .js
files? Since they are not interpreted by the template engine.
What basically want to do is:
// in comments.js $.post(url_for('comment.comment_reply'));
Which is not possible.
But naturally, I can execute that in a template:
<script> $.post(url_for('comment.comment_reply')); </script>
Advertisement
Answer
What @dumbmatter’s suggesting is pretty much considered a de facto standard way. But I thought there would be a nicer way of doing it. So I managed to develop this plugin: Flask-JSGlue.
After adding {{ JSGlue.include() }}
, you can do the following in your source code:
<script> $.post(Flask.url_for('comment.comment_reply', {article_id: 3})); </script>
or:
<script> location.href = Flask.url_for('index', {}); </script>