前提
MySQLに保存した以下のようなデータがあります。
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | taro | 22 |
| 2 | jiro | 19 |
| 3 | saburo | 16 |
+----+------+------+
このデータをFlaskを介してReactにわたすときに以下のようなコードを書いて、エラーなく実行できました。
python
1from flask import Flask, request, jsonify 2import mysql.connector 3from flask_cors import CORS 4cnx = mysql.connector.connect(user='root', password='password', 5 host='127.0.0.1', 6 database='student') 7 8app = Flask(__name__, static_folder="../frontend") 9CORS(app) 10cursor = cnx.cursor() 11 12@app.route("/show_students", methods=["GET"]) 13def show(): 14 query = "select * from student" 15 cursor.execute(query) 16 data = cursor.fetchall() 17 cnx.commit() 18 result = [] 19 for d in data: 20 result.append({"id": d[0], "name": d[1], "age": d[2]}) 21 return jsonify(result) 22 23if __name__ == '__main__': 24 app.run(host='127.0.0.1', port=5000, debug=True)
[ { "age": 22, "id": 1, "name": "taro" }, { "age": 19, "id": 2, "name": "jiro" }, { "age": 16, "id": 3, "name": "saburo" } ]
疑問
疑問としては、このような書き方をしてセキュリティ上や、その他もろもろの点で問題は無いかということです。色んな記事を自分なりにみてみたんですけど、flask_restfullとか、Marshmallowみたいなライブラリを使ってJSONデータを送ってるのが一般的な印象を受けました。
なぜわざわざ外部ライブラリを使うのかメリットを教えていただきたいのと、僕のような書き方で問題が発生するとしたらどのような場合なのか、それとも特に問題が無いのか教えてほしいです。