Creare un web service JSON in Python, Flask e MySQL
Premetto che è solo una introduzione, in quanto sto testando diversi linguaggi / tecnologie per un lavoro che devo fare.
Ho deciso, quindi, di sperimentare anche Flask, un micro framework per Python.
E vederemo anche come agganciarlo a MySQL e inviare l'output in formato JSON.
Cominciamo installando due moduli:
(venv) $ pip3 install flask flask-mysql
Abbiamo installato tutto in ambiente virtuale.
Questo il nostro script Python:
from flask import Flask, jsonify
from flaskext.mysql import MySQL
app = Flask(__name__)
mysql = MySQL()
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = '9211'
app.config['MYSQL_DATABASE_DB'] = 'test'
mysql.init_app(app)
@app.route('/')
def index():
cur = mysql.connect().cursor()
cur.execute('''SELECT * FROM persone''')
rv = cur.fetchall()
return jsonify(rv)
@app.route('/id/<int:persona_id>')
def by_id(persona_id):
cmd = '''SELECT * FROM persone WHERE id = ''' + str(persona_id)
cur = mysql.connect().cursor()
cur.execute(cmd)
rv = cur.fetchall()
return jsonify(rv)
if __name__ == "__main__":
app.run()
Abbiamo impostato due routes, con due query differenti.
E con jsonify visualiziamo i dati in formato JSON.
Quese le due routes:
- http://127.0.0.1:5000/
- http://127.0.0.1:5000/id/2
Enjoy!
pythom pip flask json mysql jsonify
Commentami!