FlaskでのMySQLの使い方|インストールや接続を解説する

スポンサーリンク

今回は、FlaskのMySQLデータベース接続を設定する方法について説明します。

スポンサーリンク

Structured Query Language (構造化照会言語)

SQLは、データベースへのアクセスや操作を可能にする言語です。

SQLでは、次のようなさまざまな作業を行うことができます。

  • データベースへのレコードの追加
  • テーブルの作成
  • CRUD (Create、Read、Update、Delete) 操作の実行

SQLは、データベースシステムが使用するクエリー言語です。

データベースをセットアップするには、MySQL、PostgreSQLなどのようなRDMSが必要です。

JournalDevのウェブサイトにあるSQLチュートリアルをご覧になり、クエリ言語について知識を深めてください。

MySQLデータベーステーブルの詳細

それでは、典型的な MySQL DB テーブルを見てみましょう。

ID 名前 都市名 国名
1|ジャック|LA|USA
2|キム|カリフォルニア|USA
3|リッキー|シカゴ|米国
4|ネイサン|ドイツ|ミュンヘン
5|ジョナサン|ドイツ|バイエルン州|ドイツ
6|マイリー|シアトル|USA||のページです。

DBテーブル行をレコード、列をフィールドと呼びます。

したがって、上記のテーブルでは、6つのレコードと4つのフィールドがあります。

テーブルの要素を操作するには、SQLステートメントを使用します。

SQLステートメントの一部を紹介します。

  • SELECT FROM – このステートメントは、テーブルからフィールド(すべてまたはいくつか)を選択します。
  • WHERE – この条件文は、通常、他の文と一緒に使用されます。これを使用すると、我々はいくつかの与えられた条件を満たす特定のレコードを選択することができます。
  • UPDATE – このステートメントは、テーブルを更新します。
  • EDIT – この文は、レコード/レコードのフィールドを編集します。
  • DELETE – この文は、レコード/レコードを削除します。

アプリケーションのためのMySQLサーバーのセットアップ

このセクションでは、MySQLサーバーをダウンロードし、設定します。

1. サーバーにXAMPPをインストールする

さて、MySQLを使用するには、Web上でMySQLの管理を行うためのソフトウェアツールが必要です。

この記事では、phpMyAdminを使用します。

もし、他のソフトウェアに慣れているのであれば、そちらを使用することも可能です。

XamppはPHPMyAdminのウェブインターフェースを提供しています。


XAMPPはここからダウンロードすることができます

または、Googleで直接「download Xampp」と検索してください。

最初のリンクがその役割を果たします。

あなたのオペレーティング・システムとアーキテクチャに合ったバージョンをダウンロードしてください。

pip install flask_mysqldb

2. ApacheとMySQLの起動

XAMPPがインストールされロードされたら、以下の2つのプロセスを開始します。

  • Apacheウェブサーバ – HTTPリクエストを処理します。
  • MySQLサーバ – データベース用
from flask import Flask,render_template, request
from flask_mysqldb import MySQL
 
app = Flask(__name__)
 
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'flask'
 
mysql = MySQL(app)

MySQLのデフォルトポートは3306であることに注意してください。

ブラウザで、https://localhost。

mysql = MySQL(app)
 
#Creating a connection cursor
cursor = mysql.connection.cursor()
 
#Executing SQL Statements
cursor.execute(''' CREATE TABLE table_name(field1, field2...) ''')
cursor.execute(''' INSERT INTO table_name VALUES(v1,v2...) ''')
cursor.execute(''' DELETE FROM table_name WHERE condition ''')
 
#Saving the Actions performed on the DB
mysql.connection.commit()
 
#Closing the cursor
cursor.close()

これはXamppのホストのウェブページです。

右上のphpMyAdminをクリックすると、phpのウェブインターフェイスが表示されます。

from flask import Flask,render_template, request
from flask_mysqldb import MySQL
 
app = Flask(__name__)
 
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'flask'
 
mysql = MySQL(app)
 
@app.route('/form')
def form():
    return render_template('form.html')
 
@app.route('/login', methods = ['POST', 'GET'])
def login():
    if request.method == 'GET':
        return "Login via the login Form"
     
    if request.method == 'POST':
        name = request.form['name']
        age = request.form['age']
        cursor = mysql.connection.cursor()
        cursor.execute(''' INSERT INTO info_table VALUES(%s,%s)''',(name,age))
        mysql.connection.commit()
        cursor.close()
        return f"Done!!"
 
app.run(host='localhost', port=5000)

ここです。

  • 左の欄のnewをクリックして、新しいDatabaseを作成します。
  • DBの名前は適当なものをつけておきます。私の場合、単純にFlaskとします。
<form action="/login" method = "POST">
   <p>name <input type = "text" name = "name" /></p>
   <p>age <input type = "integer" name = "age" /></p>
   <p><input type = "submit" value = "Submit" /></p>
</form>

DBの中にテーブルを作成します。

テーブル名は図のように空欄に入力し、Goを押します。

3. Flask-MySQLライブラリのインストール

FlaskはMySQLを利用するためにflask_mysqldbというコネクタを使用します。

以下のコマンドを実行し、パッケージをインストールします。

Xampp
Xampp

Perfect !

FlaskのMySQLデータベース接続を設定する

では、MySQLに接続して、DBにデータを格納するために使用します。

もし、flaskアプリケーションの作り方がよくわからない場合は、flask introduction tutorialをご覧ください。

1. FlaskアプリケーションとMySQLを接続する

FlaskとMySQLの接続は以下の手順で行います。

Xampp
Xampp

2. MySQL接続カーソルの設定

上記の設定だけでは、DBのテーブルを操作することはできません。

そのためには、カーソルと呼ばれるものが必要です。

つまり、カーソルはFlaskがDBテーブルと対話するための方法を提供します。

カーソルは、DBのデータをスキャンしたり、様々なSQLクエリを実行したり、テーブルのレコードを削除したりすることができます

カーソルは以下のように使用します。

Xampp Host Webpage
Xampp Host Webpage

MySQLは自動コミットするDBではないので、手動でコミットする必要があります、つまり、カーソルがDB上で実行した変更/アクションを保存します。

3. Flask アプリケーションをコーディングする

では、ユーザーから送信されたデータをMySQLのDBテーブルに格納する、小さなFlaskアプリケーションを構築します。

以下のようなApplication Codeを考えてみましょう。

Phpmyadmin
Phpmyadmin

ユーザがデータを送信すると、cursor.executeコマンドでMySQL DBに追加されます。

私のテーブル名はinfo_tableです。

form.htmlは次のようになります。

Flask DB
Flask DB

4. コードの実装

サーバを起動し、”/form” にアクセスします (Flask forms 参照)

Form
Form

詳細を入力し、Submitを押す

Success
Success

phpMyAdminのWebインターフェイスで確認しましょう。

Php
Php

完璧です!

まとめ

以上、みんなー! 今回はFlaskのMySQL接続の設定についてでした。

次回は、Flask-PostgreSQLについて見ていきたいと思います。

それではまた次回

タイトルとURLをコピーしました