Ask Your Question
1

How can Flask and SQLAlchemy be used to connect to a MySQL database?

asked 2021-12-15 11:00:00 +0000

woof gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-12-05 19:00:00 +0000

nofretete gravatar image

To use Flask and SQLAlchemy to connect to a MySQL database:

  1. Install Flask and SQLAlchemy libraries.

  2. Import Flask and SQLAlchemy libraries in the Python code.

  3. Define the Flask app object.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
  1. Configure the MySQL database connection in the Flask app object by setting the database URI in app.config. For example:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://<username>:<password>@<host>/<database>'
  1. Create a SQLAlchemy object and bind it to the Flask app object.
db = SQLAlchemy(app)
  1. Define a model class for each database table. For example:
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username
  1. Create the database tables by running db.create_all() method.
db.create_all()
  1. Use SQLAlchemy query methods to retrieve, create, update, and delete data from the MySQL database. For example:
user = User(username='john', email='john@example.com')
db.session.add(user)
db.session.commit()

users = User.query.all()

user = User.query.filter_by(username='john').first()
user.email = 'newemail@example.com'
db.session.commit()

user = User.query.filter_by(username='john').first()
db.session.delete(user)
db.session.commit()
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2021-12-15 11:00:00 +0000

Seen: 19 times

Last updated: Dec 05 '22