Getting Started with Flask: A Modern Web Framework

Learn how to build modern web applications with Flask, from basic setup to advanced features.

Getting Started with Flask

Flask is a lightweight and powerful web framework for Python that makes it easy to build web applications quickly and efficiently. In this comprehensive guide, we’ll explore everything you need to know to get started with Flask.

Why Choose Flask?

Flask is known for its simplicity and flexibility. Here are some key reasons why developers love Flask:

  • Minimal and Lightweight: Flask has a small footprint and doesn’t make many decisions for you
  • Flexible: You can structure your application however you want
  • Extensible: Rich ecosystem of extensions for additional functionality
  • Well-documented: Excellent documentation and community support

Installation

Getting started with Flask is straightforward. First, create a virtual environment:

python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

Then install Flask:

pip install Flask

Your First Flask Application

Let’s create a simple β€œHello, World!” application:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return '<h1>Hello, World!</h1>'

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

Save this as app.py and run it:

python app.py

Visit http://127.0.0.1:5000 in your browser to see your application in action!

Understanding Routes

Routes in Flask define the URL patterns that your application responds to:

@app.route('/')
def index():
    return 'Home Page'

@app.route('/about')
def about():
    return 'About Page'

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

Templates with Jinja2

Flask uses Jinja2 templating engine for rendering HTML templates:

from flask import render_template

@app.route('/hello/<name>')
def hello(name):
    return render_template('hello.html', name=name)

And your template (templates/hello.html):

<!DOCTYPE html>
<html>
<head>
    <title>Hello {{ name }}</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>

Handling Forms

Flask makes it easy to handle forms:

from flask import request

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        username = request.form['username']
        return f'Hello {username}!'
    return '''
        <form method="post">
            <input type="text" name="username" placeholder="Enter your name">
            <input type="submit" value="Submit">
        </form>
    '''

Next Steps

Now that you have the basics, here are some areas to explore:

  1. Database Integration: Use SQLAlchemy for database operations
  2. User Authentication: Implement login/logout functionality
  3. RESTful APIs: Build APIs with Flask-RESTful
  4. Deployment: Deploy your application to production

Conclusion

Flask provides an excellent foundation for building web applications in Python. Its simplicity and flexibility make it perfect for both beginners and experienced developers.

Start building your own Flask applications and explore the extensive ecosystem of extensions available to enhance your projects!