LoginSignup
0
0

More than 1 year has passed since last update.

DockerのMySqlコンテナへFlaskで接続して、Select表示させる

Posted at

■ DockerでMysqlコンテナ作成

# コンテナイメージ ダウンロード
$docker pull mysql

# コンテナ作成
$docker create --name tossymysql -e MYSQL_ROOT_PASSWORD=root -p 33306:3306 mysql

# コンテナ開始
$docker start tossymysql

■ ・flaskファイルを をwindows D ドライブ直下へ作成(コマンドプロンプト)

$ cd /d d:
$mkdir flask_app_test
$cd flask_app_test
$type nul > app.py

■ Flask ソース


from flask import Flask
import mysql.connector

# === DB 接続情報

"""

テスト用 DB & テーブル

CREATE DATABASE sample_db;
USE sample_db;

CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email_address VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);

use sample_db;
insert into users (name, email_address) values
('John Smith', 'john@example.com'),
('Jane Doe', 'jane@example.com'),
('Bob Johnson', 'bob@example.com'),
('Alice Lee', 'alice@example.com'),
('Mike Davis', 'mike@example.com');

"""


def conn_db():
    conn = mysql.connector.connect(
        host='127.0.0.1',
        user='root',
        password='root',
        port='33306',
        # db='flask_db_01'
        db='sample_db'
    )

    return conn


# SQL 文
sql = 'SELECT * FROM users'

try:
    conn = conn_db()
    cursor = conn.cursor()
    cursor.execute(sql)
    rows = cursor.fetchall()
except(mysql.connector.errors.ProgrammingError) as e:
    print('エラー')
    print(e)

print('select開始')

for r_val in rows:
    print(r_val[0], r_val[1], r_val[2])


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0