項目
- dbとテーブルを作っておく
- PyMySQLインストール
- 動作確認
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.終わりに
- ここまでいけばもうスクリプト書くだけ!