@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.