Introduction

Flask, SQLite, and SQLAlchemy form a powerful combination for working with databases in web applications. In this guide, we'll explore how to use SQLite as the database engine, and SQLAlchemy as the Object-Relational Mapping (ORM) library within your Flask application. You'll learn how to set up a database, create models, and perform database operations.


Step 1: Setting Up Your Flask Application

Before working with databases, make sure you have a Flask application. If not, you can create a basic Flask app like this:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///your_database.db'
db = SQLAlchemy(app)

Ensure you have Flask-SQLAlchemy installed, and you can specify the database URI for your SQLite database.


Step 2: Creating a Model

To define a model, you can create a Python class representing a table in your database. Here's an example of a simple model:

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __init__(self, username, email):
self.username = username
self.email = email

In this example, we define a "User" model with three fields: "id," "username," and "email." The model class inherits from db.Model, and the fields are defined as class attributes.


Step 3: Creating Database Tables

To create the database tables based on your models, run the following commands in your Python script:

# Create the database tables
db.create_all()

This command initializes the database schema based on your defined models.


Step 4: Performing Database Operations

With your models and tables in place, you can interact with the database by using SQLAlchemy methods. Here's an example of how to add a new user to the database:

# Create a new user
new_user = User(username='john_doe', email='john@example.com')
# Add the user to the database
db.session.add(new_user)
db.session.commit()

This code creates a new user object, adds it to the session, and commits the changes to the database.


Conclusion

Flask, SQLite, and SQLAlchemy provide a powerful stack for managing databases in your Flask applications. By defining models, creating database tables, and using SQLAlchemy to interact with the database, you can build data-driven web applications with ease.