В веб-разработке обычно используется Flask, популярная микроплатформа Python, для обработки операций на стороне сервера, а также JavaScript для обработки взаимодействий на стороне клиента. Одной из распространенных задач является передача данных из Flask в JavaScript. В этой статье мы рассмотрим несколько способов достижения этой цели с примерами кода и понятными объяснениями.
Метод 1: встраивание параметров Flask в атрибуты HTML
Один простой метод — встраивание параметров Flask непосредственно в атрибуты HTML. Допустим, мы хотим передать параметр «имя пользователя» из Flask в JavaScript:
Код фляги:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
username = "John Doe"
return render_template('index.html', username=username)
if __name__ == '__main__':
app.run()
HTML-код (index.html):
<!DOCTYPE html>
<html>
<head>
<title>My Web Page</title>
<script src="script.js"></script>
</head>
<body>
<h1>Welcome, <span id="username" data-username="{{ username }}"></span>!</h1>
</body>
</html>
Код JavaScript (script.js):
window.addEventListener('DOMContentLoaded', (event) => {
const username = document.getElementById('username').dataset.username;
console.log(username); // Output: John Doe
});
Объяснение:
В этом методе мы передаем параметр Flask «имя пользователя» на HTML-страницу с помощью функции render_template
. Затем мы используем атрибут data-username
для сохранения значения имени пользователя в элементе HTML. JavaScript получает значение с помощью свойства dataset
.
Метод 2: использование AJAX для получения параметров Flask.
Другой подход предполагает использование AJAX для асинхронного получения параметров Flask. Этот метод полезен, когда вам нужно получить динамические данные с сервера.
Код флакона:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/user')
def get_user():
username = "John Doe"
return jsonify(username=username)
if __name__ == '__main__':
app.run()
Код JavaScript (script.js):
window.addEventListener('DOMContentLoaded', (event) => {
fetch('/api/user')
.then(response => response.json())
.then(data => {
const username = data.username;
console.log(username); // Output: John Doe
});
});
Объяснение:
В этом методе мы создаем маршрут Flask /api/user
, который возвращает имя пользователя в формате JSON. JavaScript использует API fetch
для выполнения асинхронного запроса по этому маршруту и получения имени пользователя.
Передача параметров Flask в JavaScript на HTML-странице открывает ряд возможностей для динамических и интерактивных веб-приложений. В этой статье мы рассмотрели два метода: встраивание параметров в атрибуты HTML и использование AJAX для асинхронного получения параметров. Понимая эти методы, вы сможете улучшить свои навыки работы с Flask и JavaScript и создавать более мощные веб-приложения.