FlaskとPythonを使用してMySQLにデータを挿入する方法


  1. Flask-MySQLdbを使用する方法: Flask-MySQLdbは、FlaskとMySQLデータベースを接続するための便利な拡張機能です。まず、Flask-MySQLdbをインストールします。
pip install Flask-MySQLdb

次に、以下のようなコードを使用してデータを挿入できます。

from flask import Flask, request
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'your_username'
app.config['MYSQL_PASSWORD'] = 'your_password'
app.config['MYSQL_DB'] = 'your_database_name'
mysql = MySQL(app)
@app.route('/insert', methods=['POST'])
def insert():
    data = request.form
    name = data['name']
    age = data['age']
    cur = mysql.connection.cursor()
    cur.execute("INSERT INTO your_table_name (name, age) VALUES (%s, %s)", (name, age))
    mysql.connection.commit()
    cur.close()
    return 'Data inserted successfully'
if __name__ == '__main__':
    app.run()

上記のコードでは、Flask-MySQLdbを使用してMySQLデータベースに接続し、/insertエンドポイントでPOSTリクエストを処理しています。リクエストのデータ(名前と年齢)を取得し、INSERT INTOクエリを使用してデータをデータベースに挿入しています。

  1. SQLAlchemyを使用する方法: もう一つの方法は、SQLAlchemyを使用する方法です。SQLAlchemyは、PythonのORM(Object Relational Mapper)ライブラリであり、データベース操作をより簡単に行うことができます。

まず、SQLAlchemyをインストールします。

pip install SQLAlchemy

次に、以下のようなコードを使用してデータを挿入できます。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your_username:your_password@localhost/your_database_name'
db = SQLAlchemy(app)
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    age = db.Column(db.Integer)
@app.route('/insert', methods=['POST'])
def insert():
    name = request.form['name']
    age = request.form['age']
    new_user = User(name=name, age=age)
    db.session.add(new_user)
    db.session.commit()
    return 'Data inserted successfully'
if __name__ == '__main__':
    app.run()

上記のコードでは、SQLAlchemyを使用してMySQLデータベースに接続し、Userモデルを定義しています。/insertエンドポイントでPOSTリクエストを処理し、リクエストのデータを使用して新しいユーザーを作成し、データベースに挿入しています。

これらはFlaskとPythonを使用してMySQLにデータを挿入するための2つの一般的な方法です。どちらの方法を選択するかは、プロジェクトの要件や好みによって異なります。