Как подружить flask и react js?

Пользователь

от velma , в категории: Python , 2 года назад

Как подружить flask и react js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от steve , 2 года назад

@velma 

Для того чтобы подружить Flask и ReactJS, вам необходимо создать RESTful API с помощью Flask, который будет обрабатывать запросы от вашего React-приложения.


Вот общий план, который вы можете использовать для создания такого приложения:

  1. Создайте статическую папку в Flask для хранения вашего React-кода. Например, вы можете создать папку "static" в корневой папке вашего Flask-приложения.
  2. Установите и настройте webpack для компиляции вашего React-кода и создания bundle.js файлов.
  3. Создайте необходимые маршруты в Flask для обработки запросов от вашего React-приложения. Например, вы можете создать маршрут /api/data, который будет возвращать данные в формате JSON.
  4. В вашем React-коде используйте fetch() или axios для выполнения запросов к маршрутам, которые вы создали в вашем Flask-приложении.
  5. Создайте точку входа в ваше React-приложение в вашем 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.

Пользователь

от aubree , 2 года назад

@velma 

Flask и React JS могут быть подружены, чтобы создать веб-приложение, которое использует React JS в качестве фронтэнд-фреймворка и Flask в качестве бэкэнд-фреймворка.


Вот простой шаг за шагом процесс, который вы можете использовать, чтобы начать создавать приложение с использованием Flask и React JS:

  1. Создайте новый проект Flask. Для этого вам понадобится установить Flask и создать файл app.py.
 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. Установите React JS, используя Node.js и npm.
  2. Создайте новый проект React JS, используя инструмент create-react-app.
1
npx create-react-app my-app


  1. Перейдите в папку my-app и установите библиотеку axios для работы с запросами к серверу Flask.
1
2
cd my-app
npm install axios


  1. В файле index.js добавьте код для отправки запроса к серверу Flask.
 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. В файле app.py добавьте код для создания API, который будет возвращать сообщение.
 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. Запустите сервер Flask и клиент React JS.
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!" на странице.