DEV Community

cmccafferty96
cmccafferty96

Posted on

Building A Full-Stack Application With Flask And React

In today's fast-paced world, web development has become an essential skill for tech enthusiasts and entrepreneurs alike. Full-stack development, which involves both front-end and back-end programming, allows you to create dynamic and interactive web applications. In this blog post, we'll explore the basics of building a full-stack application using Flask, a Python-based micro web framework, and React, a popular JavaScript library for building user interfaces.

Prerequisites
Before diving into building a full-stack application, you should have a basic understanding of Python, JavaScript, and web development concepts. Familiarity with Flask and React will be beneficial but not mandatory. Make sure you have Python and Node.js installed on your computer.

Setting Up The Back-End With Flask
Step 1: Creating The Project Directory

To start, let's create a new directory for our project. Open your terminal or command prompt and execute the following command:

mkdir flask_react_app
cd flask_react_app
Enter fullscreen mode Exit fullscreen mode

Step 2: Setting Up A Virtual Environment:

Next, we'll create a virtual environment to keep our project dependencies isolated. This step is crucial for managing package versions. Run the following commands:

python -m venv venv
source venv/bin/activate # On Windows, use 'venv/Scripts/activate'
Enter fullscreen mode Exit fullscreen mode

Step 3: Installing Flask

With our virtual environment activated, let's install Flask using pip:

pip install flask
Enter fullscreen mode Exit fullscreen mode

Step 4: Creating the Flask App

Now create a a new file called 'app.py' and open it in your favorite code editor. We'll set up a basic Flask application:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World! This is our Flask backend.'
Enter fullscreen mode Exit fullscreen mode

Step 5: Running the Flask App

Save the 'app.py' file and run the Flask application

python app.py
Enter fullscreen mode Exit fullscreen mode

Now, if you visit 'http://localhost:5000' in your web browser, you should see the message 'Hello, World! This is our Flask backend.'

Setting Up the Front-End with React

Step 1: Initializing a New React Project

Now that our back-end is up and running, let's set up the front-end with React. In a new terminal or command prompt window, execute the following command:

npx create-react-app frontend
cd frontend
Enter fullscreen mode Exit fullscreen mode

Step 2: Starting the React Development Server

React development server allows us to preview our application during development. Start the server with the following command:

npm start
Enter fullscreen mode Exit fullscreen mode

Head over to 'http://localhost:3000' in your browser, and you should see a basic React app.

Step 3: Connecting React to the Flask Back-End

Now, let's make our React app communicate with the Flask back-end. We'll use Axios, a popular HTTP client, to make API requests. First, install Axios:

npm install axios
Enter fullscreen mode Exit fullscreen mode

Step 4: Creating a Simple API Request

Open the 'src/App.js' file and import Axios at the top:

import React, { useEffect, useState } from 'react';
import axios from 'axios';

const App = () => {
  const [message, setMessage] = useState('');

useEffect(() => {
   axios.get('http://localhost:5000/')
   .then((response) =>
setMessage(response.data)
   .catch((error) => console.error(error));
}, []);

return (
 <div>
  <h1>{message}</h1>
 </div>
);
};

export default App;
Enter fullscreen mode Exit fullscreen mode

In this code, we use React's 'useEffect' hook to fetch data from our Flask back-end when the component mounts. The message returned from the API is then displayed on the page.

Congratulations! You've successfully built a basic full-stack application using Flask and React. You've learned how to set up a Flask back-end and a React front-end, as well as how to connect the two using API requests. From here, you can explore further and add more features to your application, such as database integration, user authentication, and more complex React components.

Remember that this is just the beginning, and there's so much more you can achieve with Flask and React. Keep exploring, building, and honing your web development skills to create even more powerful and sophisticated applications.

Happy coding! :)

Top comments (0)