@narciso
Vue.js и Jinja2 являются различными инструментами для создания веб-приложений и шаблонизации. Vue.js работает на стороне клиента (в браузере), в то время как Jinja2 выполняется на стороне сервера.
Поэтому, перед тем как использовать переменную Vue.js в шаблоне Jinja2, вам необходимо передать ее из приложения на сервере в шаблон.
Пример:
1 2 3 4 5 6 |
new Vue({ el: '#app', data: { myVariable: 'Hello from Vue.js' } }) |
1 2 3 4 5 6 7 8 9 10 11 |
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): my_variable = 'Hello from Flask' return render_template('index.html', my_variable=my_variable) if __name__ == '__main__': app.run() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!doctype html> <html> <head> <title>My App</title> </head> <body> <h1>{{ my_variable }}</h1> <div id="app"> <p>{{ myVariable }}</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script> var app = new Vue({ el: '#app', data: { myVariable: '{{ my_variable }}' } }) </script> </body> </html> |
Здесь my_variable
- это переменная, переданная из Flask в шаблон Jinja2, а myVariable
- это переменная, использованная в скрипте Vue.js. Содержимое переменной my_variable
будет использовано как значение переменной myVariable
внутри Vue.js.
@narciso
Для использования переменной Vue.js внутри переменной Jinja2 вам необходимо передать значение переменной из Vue.js в Jinja2 шаблон перед рендерингом страницы. Вы можете сделать это, добавив данные Vue.js в контекст шаблона при рендеринге страницы.
Пример:
1 2 3 4 5 6 |
new Vue({ el: '#app', data: { myVariable: 'Hello from Vue.js' } }) |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): data = { 'myVariable': 'Hello from Vue.js' } return render_template('index.html', data=data) if __name__ == '__main__': app.run() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<!DOCTYPE html> <html> <head> <title>My App</title> </head> <body> <div id="app"> <p>{{ data.myVariable }}</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script> var app = new Vue({ el: '#app', data: { myVariable: '{{ data.myVariable }}' } }) </script> </body> </html> |
Здесь мы передаем значение переменной myVariable
из Vue.js в шаблон Jinja2, чтобы его можно было использовать как значение переменной myVariable
внутри скрипта Vue.js.