エンジニア

なんくるないさ

「このブログはアフィリエイト広告を利用しています」

Herokuを使って、pythonのウェブアプリを外部公開した話(データベース編)

jump1268.hatenablog.com 前回の続きで今回はデータベースについて書きます。


データベースとは?

データを入れる箱みたいなもの
僕のイメージだとpythonのpandasみたいな感じ
その箱に名前をつける(table名) 値をインサートしていく

具体的に僕がpythonで書いたものが下です

import pandas as pd
import psycopg2
connection = psycopg2.connect("host=aaa port=aaa dbname=aaa user=aaa")
cursor = connection.cursor()
cursor.execute("select version()")

cursor.execute("CREATE TABLE test2 (id serial PRIMARY KEY, time varchar, input varchar, output varchar);")
cursor.execute("INSERT INTO test2 (time, input, output) VALUES (%s, %s, %s)", (dt_now, "あいうえおさよならはあなたからいったそれなのに", "lale"))
cursor.execute("INSERT INTO test2 (time, input, output) VALUES (%s, %s, %s)", (dt_now, "かきくけこ", "lale"))
cursor.execute("SELECT * FROM test2;")
cursor.fetchone()

軽く解説すると、最初に接続するDBの情報をhost, port,dbname ,user で指定します
その後test2 というデータベースのテーブルを作ります。
このテーブルはid と time, input, outputを要素にもちます。
このcreate table test2 というプログラムは一回だけ動かせばよいです。(2回目やるとすでにtest2は存在しているぞというエラーが出ます)
ちなみにherokuにアップロードしているこの部分はコメントアウトしています

ちなみにデータベースの中身を見る時は下のプログラムで見ることができます
pandas で見れるから便利ですね。

# DataFrameでロード
rentals = pd.read_sql(sql="SELECT * FROM test2;", con=connection)

# 表示
rentals

f:id:jump1268:20190316152801p:plain

これで簡単ではありますが、ウェブサービスを立ち上げて、ユーザが入力したデータを保存できるということができるようになりました。

要約君