Using MySQL in Flask Using MySQL in Flask python python

Using MySQL in Flask


Firstly you need to install Flask-MySQL package. Using pip for example:

pip install flask-mysql

Next you need to add some configuration and initialize MySQL:

from flask import Flaskfrom flaskext.mysql import MySQLapp = Flask(__name__)mysql = MySQL()app.config['MYSQL_DATABASE_USER'] = 'root'app.config['MYSQL_DATABASE_PASSWORD'] = 'root'app.config['MYSQL_DATABASE_DB'] = 'EmpData'app.config['MYSQL_DATABASE_HOST'] = 'localhost'mysql.init_app(app)

Now you can get connection and cursor objects and execute raw queries:

conn = mysql.connect()cursor =conn.cursor()cursor.execute("SELECT * from User")data = cursor.fetchone()


from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@server/db'db = SQLAlchemy(app)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

help link


Pretty simple with pymysql:

from flask import Flask, request, render_templateimport pymysqldb = pymysql.connect("localhost", "username", "password", "database")app = Flask(__name__)api = Api(app)@app.route('/')def someName():    cursor = db.cursor()    sql = "SELECT * FROM table"    cursor.execute(sql)    results = cursor.fetchall()    return render_template('index.html', results=results)if __name__ == '__main__':app.run(debug=True)

In your index.html file just do something like:

<div><% for row in results %}      <tr>         <td>{{ row[0] }}</td>         <td>{{ row[1] }}</td>         <td>{{ row[2] }}</td>         <td>{{ row[3] }}</td>      </tr>{% endfor %}</div>