Basic REST API Using Flask and MySQL - GET
The example below returns not only the results as JSON, but also conveniently includes the database table’s column names in the result. The example assumes Python and MySQL are already installed and configured.
1. Install PIP Dependencies
pip install Flask flask-mysql
2. Basic API
my_app.py:
from flask import Flask, jsonify
from flaskext.mysql import MySQL
app = Flask(__name__)
mysql = MySQL()
# MySQL configurations
app.config['MYSQL_DATABASE_USER'] = 'my_user'
app.config['MYSQL_DATABASE_PASSWORD'] = 'my_password'
app.config['MYSQL_DATABASE_DB'] = 'my_database'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)
@app.route('/')
def get():
cur = mysql.connect().cursor()
cur.execute('''select * from my_database.my_table''')
r = [dict((cur.description[i][0], value)
for i, value in enumerate(row)) for row in cur.fetchall()]
return jsonify({'myCollection' : r})
if __name__ == '__main__':
app.run()
3. Execute App and Review Results
cd directory_where_file_above_resides
python my_app.py
Default port for Flask is 5000. Open your browser and paste http://127.0.0.1:5000 in the URL bar to call your cool new API.