Flask: Lightweight Web Framework

Flask is a popular Python microframework designed to make web development simple and flexible. It allows developers to build web applications with minimal setup, focusing on extensibility and modular design.

Key Features of Flask

Getting Started with Flask

Installation


  pip install Flask
    

Creating a Basic Flask Application


  from flask import Flask
  app = Flask(__name__)
  

Running the app


  if __name__ == '__main__':
    app.run(debug=True)
    

9 Practical Flask Examples

Example 1: Basic Flask app


  from flask import Flask
  app = Flask(__name__)

  @app.route('/')
  def home():
    return "Hello, Flask!"

  if __name__ == '__main__':
    app.run(debug=True)

    

Example 2: Route with variable


  @app.route('/user/<username>')
  def show_user(username):
    return f"User: {username}"

  if __name__ == '__main__':
    app.run(debug=True)
    

Example 3: HTTP methods - GET and POST


  from flask import request

  @app.route('/login', methods=['GET', 'POST'])
  def login():
    if request.method == 'POST':
      username = request.form['username']
      return f"Logged in as {username}"
    return '''
      <form method="post">
        Username: <input type="text" name="username">
        <input type="submit" value="Login">
      </form>
    '''
    

Example 4: JSON response


  from flask import jsonify

  @app.route('/api/data')
  def api_data():
    return jsonify({"name": "Flask", "version": "2.x"})
    

Example 5: Using templates


  from flask import render_template

  @app.route('/template')
  def template():
    return render_template('index.html', title="Welcome", message="Hello from Flask")
    

Example 6: Redirect and url_for


  from flask import redirect, url_for

  @app.route('/redirect')
  def redirect_example():
    return redirect(url_for('home'))
    

Example 7: Using sessions


  from flask import session

  app.secret_key = 'supersecretkey'

  @app.route('/set_session')
  def set_session():
    session['user'] = 'JohnDoe'
    return "Session set"

  @app.route('/get_session')
  def get_session():
    user = session.get('user', 'Not set')
    return f"User in session: {user}"
    

Example 8: Custom error handler


  @app.errorhandler(404)
  def page_not_found(e):
    return "Sorry, page not found!", 404
    

Example 9: Serving static files


  @app.route('/static-example')
  def static_example():
    return '<img src="/static/logo.png" alt="Logo">'