LoginSignup
0
2

More than 3 years have passed since last update.

(自分用)Flask_AWS_3(SQL動いてるか確認)

Posted at

項目

  1. dbとテーブルを作っておく
  2. PyMySQLインストール
  3. 動作確認

1.dbとテーブルを作っておく

  • http://前に設定したAWSのパブリックIP/phpmyadmin/でphpMyAdminに接続
  • testってdbを作っておく
  • testをクリックして、上の方のSQLを選択しこれを入力
SQL文
CREATE TABLE players (
  id INT NOT NULL PRIMARY KEY,
  name VARCHAR(32),
  level INT,
  job_id INT
);

CREATE TABLE jobs (
  id INT NOT NULL PRIMARY KEY,
  job_name VARCHAR(10),
  vitality INT,
  strength INT,
  agility INT,
  intelligence INT,
  luck INT
);

INSERT
  INTO players(id,name,level,job_id)
  VALUES
    (1,"タキ",12,6),
    (2,"ケン",7,2),
    (3,"リン",1,1),
    (4,"ユウ",3,3),
    (5,"クレア",10,4),
    (6,"ショウ",5,2),
    (7,"さくら",7,1),
    (8,"ジャック",5,4),
    (9,"ロック",12,6),
    (10,"じゅん",1,NULL);

INSERT
  INTO jobs(id, job_name, vitality, strength, agility, intelligence, luck)
  VALUES
    (1,"戦士",8,8,4,4,3),
    (2,"盗賊",3,3,8,5,7),
    (3,"狩人",5,5,7,5,4),
    (4,"魔法使い",3,2,6,8,6),
    (5,"僧侶",5,5,3,7,5),
    (6,"勇者",10,10,10,10,10);
  • 構造って所にplayers,jobsがあれば成功

2.PyMySQLインストール

ターミナル
# まずAWSに接続
$ ssh -i ~/.ssh/FirstKey.pem ec2-user@(パブリックIP)

# モジュールを確認
$$ pip freeze

# PyMySQLインストール
$$ pip install PyMySQL
  • AWSの接続はまだ切らないでね

3.動作確認

  • まずpyファイルを作る
ターミナル
# pyファイル作成
$$ vi /var/www/html/db_test.py
db_test.py
# iを押して書き込みモード、esc→:wqで保存終了
from flask import Flask, render_template
import pymysql
app = Flask(__name__)

def getConnection():
    return pymysql.connect(
        host='localhost',
        db='test',
        user='root',
        password='phpMySQLと同じパスワード',
        charset='utf8',
        cursorclass=pymysql.cursors.DictCursor
    )

@app.route('/')
def select_sql():

    connection = getConnection()
    message = "Hello world"

    sql = "SELECT * FROM players"
    cursor = connection.cursor()
    cursor.execute(sql)
    players = cursor.fetchall()

    cursor.close()
    connection.close()

    return render_template('view.html', message = message, players = players)
  • このpy文は前回のFlaskからdbでやったのと同じもの
  • 次はテンプレートファイルを作る
ターミナル
# まずテンプレートファイルを入れるtemplatesを作成
$$ mkdir /var/www/html/templates

## この中にテンプレートファイルを作る
$$ vi /var/www/html/templates/view.html
view.html
<!--書き方は前と同じ-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Hello SQL</h1>
    <p>{{ message }}</p>

    {% for player in players %}
        <p>{{ player }}</p>
    {% endfor %}
</body>
</html>
  • 準備完了
ターミナル
# pyファイルを動かす
$$ python3 /var/www/html/db_test.py
# 終わったらctrl+c
  • http://AWSで設定したパブリックIPアドレス:5000に接続し、いい感じに表示されれば成功

4.終わりに

  • ここまでいけばもうスクリプト書くだけ!
0
2
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
2