Here's a step-by-step guide on how to integrate Flask with SQLAlchemy to connect to a MySQL database:
-
Install Required Packages: First, you need to install Flask and SQLAlchemy if you haven't already. Additionally, you need to install a MySQL driver for SQLAlchemy to communicate with MySQL databases. You can install these packages using pip:
pip install flask sqlalchemy pymysql
-
Set Up Your Flask Application: Create a Flask application and initialize SQLAlchemy within it.
# app.py from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@host/db_name' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app)
Replace
username
,password
,host
, anddb_name
with your MySQL database credentials. -
Define Your Models: Define your database models using SQLAlchemy's declarative base.
# models.py from app import db 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 __repr__(self): return '<User %r>' % self.username
-
Create the Database Tables: After defining your models, you need to create the corresponding tables in your MySQL database.
python >>> from app import db >>> db.create_all()
-
Perform Database Operations: You can now use SQLAlchemy to perform various database operations such as adding, querying, updating, and deleting records.
# Example: Adding a user from app import db from models import User new_user = User(username='john', email='john@example.com') db.session.add(new_user) db.session.commit()
You can perform similar operations for other CRUD operations.
-
Handle Database Sessions: It's essential to handle database sessions properly, especially when performing multiple operations.
# Example: Querying all users from app import db from models import User all_users = User.query.all()
-
Close Database Connections: Always remember to close the database connections after you finish working with them.
# Example: Closing database session db.session.close()
To launch your Flask application, you need to run the Python script containing your Flask application. Assuming you've followed the steps outlined earlier, here's how you can do it:
-
Run the Flask Application Script:
Navigate to the directory containing your Flask application script (
app.py
in this case) using the command line or terminal.Then, execute the script using the
python
command:python app.py
-
Access Your Flask Application:
Once your Flask application is running, it will start a local web server by default. You can access your application by opening a web browser and navigating to the following URL:
http://localhost:5000
If everything is set up correctly, you should see your Flask application running.
-
Testing Your Routes:
You can now test the routes defined in your Flask application. For example, if you've defined a route for displaying users, you can navigate to it using the appropriate URL in your browser.
-
Stopping the Flask Application:
To stop the Flask application, you can typically press
Ctrl + C
in the terminal where the application is running. This will stop the Flask development server.
Remember to keep the terminal window open while you're testing your Flask application. If you close the terminal window or interrupt the Python process running the Flask application, your application will stop.
For production deployment, consider using a more robust web server such as Gunicorn or uWSGI along with a reverse proxy like Nginx. Also, make sure to configure your Flask application for production environment settings.