How to Use Python Flask for Lightweight Back-End Applications

How to Use Python Flask for Lightweight Back-End Applications

Python Flask is a micro web framework that is perfect for creating lightweight back-end applications. Its simplicity and flexibility make it a popular choice for developers looking to build scalable web services without the overhead of larger frameworks. In this article, we will explore how to use Python Flask effectively for your back-end development needs.

Setting Up Your Flask Environment

Before you start coding, you'll need to set up your environment. Follow these steps:

  1. Ensure you have Python installed on your machine. You can download it from the official Python website.
  2. Create a virtual environment to manage your project's dependencies. Use the command:
  3. python -m venv myenv
  4. Activate your virtual environment:
  5. # On Windows
    myenv\Scripts\activate
    # On macOS or Linux
    source myenv/bin/activate
  6. Install Flask using pip:
  7. pip install Flask

Creating Your First Flask Application

With Flask installed, you can start creating your first application. Create a file named app.py and add the following code:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
    return "Hello, Flask!"
if __name__ == '__main__':
    app.run(debug=True)

This code initializes a Flask application with a single route that returns a greeting. Run the application using:

python app.py

Open your web browser and navigate to http://127.0.0.1:5000/ to see your application in action.

Routing and Request Handling

Flask allows you to define multiple routes effortlessly. You can create dynamic routes to handle parameters in your URLs. Here’s an example:

@app.route('/user/')
def profile(username):
    return f"Hello, {username}!"

This route captures a username parameter from the URL and displays it on the webpage. To test it, visit http://127.0.0.1:5000/user/John.

Handling HTTP Methods

Flask can handle various HTTP request methods such as GET and POST with ease. Here’s how to create a route that handles both:

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        name = request.form['name']
        return f"Received name: {name}"
    return '''
        
Name:
'''

This example provides a simple form that, when submitted, captures the user's name.

Using Templates for Dynamic Content

Flask also supports templates to render HTML dynamically. To use templates, create a directory named templates and add an HTML file, for example, greeting.html:



    

Hello, {{ name }}!

Modify your route to render this template:

from flask import render_template
@app.route('/greet/')
def greet(name):
    return render_template('greeting.html', name=name)

Connecting to a Database

Flask works well with databases, making it easy to store and retrieve data. You can use SQLite for lightweight applications. First, install Flask-SQLAlchemy:

pip install Flask-SQLAlchemy

Next, configure your application:

from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
db =