今回は、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を押します。
この記事もチェック:Flaskのエラー処理|エラーメッセージの表示やエラーログを表示させる方法
3. Flask-MySQLライブラリのインストール
FlaskはMySQLを利用するためにflask_mysqldbというコネクタを使用します。
以下のコマンドを実行し、パッケージをインストールします。
Perfect !
この記事もチェック:Flaskのライブラリflask-wtfの使い方|簡単にフォームを作成するよ
FlaskのMySQLデータベース接続を設定する
では、MySQLに接続して、DBにデータを格納するために使用します。
もし、flaskアプリケーションの作り方がよくわからない場合は、flask introduction tutorialをご覧ください。
1. FlaskアプリケーションとMySQLを接続する
FlaskとMySQLの接続は以下の手順で行います。
2. MySQL接続カーソルの設定
上記の設定だけでは、DBのテーブルを操作することはできません。
そのためには、カーソルと呼ばれるものが必要です。
つまり、カーソルはFlaskがDBテーブルと対話するための方法を提供します。
カーソルは、DBのデータをスキャンしたり、様々なSQLクエリを実行したり、テーブルのレコードを削除したりすることができます。
カーソルは以下のように使用します。
MySQLは自動コミットするDBではないので、手動でコミットする必要があります、つまり、カーソルがDB上で実行した変更/アクションを保存します。
この記事もチェック:FlaskのCookiesの設定、保存や取得等の使い方を分かりやすく解説する
3. Flask アプリケーションをコーディングする
では、ユーザーから送信されたデータをMySQLのDBテーブルに格納する、小さなFlaskアプリケーションを構築します。
以下のようなApplication Codeを考えてみましょう。
ユーザがデータを送信すると、cursor.executeコマンドでMySQL DBに追加されます。
私のテーブル名はinfo_tableです。
form.htmlは次のようになります。
この記事もチェック:Flaskでフォームを実装|ユーザーの入力を受け取る方法などを解説
4. コードの実装
サーバを起動し、”/form” にアクセスします (Flask forms 参照)
詳細を入力し、Submitを押す
phpMyAdminのWebインターフェイスで確認しましょう。
完璧です!
まとめ
以上、みんなー! 今回はFlaskのMySQL接続の設定についてでした。
次回は、Flask-PostgreSQLについて見ていきたいと思います。
それではまた次回