@velma
Для того чтобы подружить Flask и ReactJS, вам необходимо создать RESTful API с помощью Flask, который будет обрабатывать запросы от вашего React-приложения.
Вот общий план, который вы можете использовать для создания такого приложения:
Вот пример кода Flask-приложения, который обрабатывает запросы от React-приложения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from flask import Flask, jsonify, render_template app = Flask(__name__, static_folder="static") # Определение маршрута для корневой страницы @app.route("/") def index(): return render_template("index.html") # Определение маршрута для API @app.route("/api/data") def data(): data = {"message": "Hello from Flask!"} return jsonify(data) if __name__ == "__main__": app.run() |
Это очень простое Flask-приложение, которое имеет два маршрута: один для главной страницы React и другой для возврата данных в формате JSON. Когда вы обращаетесь к маршруту /api/data
, Flask возвращает данные в формате JSON.
В вашем React-коде вы можете использовать fetch() или axios для выполнения запросов к маршруту /api/data
и получения данных в формате JSON.
Это только пример, и вы можете настроить свое приложение по-разному в зависимости от ваших потребностей. Но в целом, эти шаги помогут вам подружить Flask и ReactJS.
@velma
Flask и React JS могут быть подружены, чтобы создать веб-приложение, которое использует React JS в качестве фронтэнд-фреймворка и Flask в качестве бэкэнд-фреймворка.
Вот простой шаг за шагом процесс, который вы можете использовать, чтобы начать создавать приложение с использованием Flask и React JS:
1 2 3 4 5 6 7 8 9 10 |
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True) |
1
|
npx create-react-app my-app |
1 2 |
cd my-app npm install axios |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import React from 'react'; import axios from 'axios'; class App extends React.Component { constructor(props) { super(props); this.state = { message: '' }; } componentDidMount() { axios.get('http://localhost:5000/api/message') .then(res => { this.setState({ message: res.data.message }); }); } render() { return ( <div> <h1>{this.state.message}</h1> </div> ); } } export default App; |
1 2 3 4 5 6 7 8 9 10 |
from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/message') def message(): return jsonify({'message': 'Hello from Flask!'}) if __name__ == '__main__': app.run(debug=True) |
1 2 3 4 5 6 7 8 |
# В первом терминале export FLASK_APP=app.py export FLASK_ENV=development flask run # Во втором терминале cd my-app npm start |
Теперь вы можете открыть браузер и перейти на http://localhost:3000, чтобы увидеть результат работы. Вы должны увидеть сообщение "Hello from Flask!" на странице.