プログラミング

【Python3に挑戦】実際にデータベースを操作するプログラムを書いてみた

パイソンプログラミング

おはようございます。じぇいかわさきです。

スポンサーリンク

 

この前、Python3からデータベースを操作するための準備として、モジュールやライブラリーをインストールした。

 

これでPython3からデータベースを操作するための準備は完了しているとおもわれるので、実際にPython3でプログラムを作成し、本当にデータベースの操作ができるかを確認した。

 

今回も、Python3自体をまだ十分理解できていないので、手探り状態からの作業となった。

 

パイソンプログラミング

 

 

 

プログラムを考えてみる

さて、実際にPython3で今回作成したMariaDBへ接続するためにどうしたらいいのだろうか?

 

前回インストールしたpymysqlと言うモジュールを使用すると、MySQLdbとほぼ互換で使用できるらしことまで分かっているので、pymysqlを使用して接続するプログラムを作ってみる。

 

作ってみると言っても、もともと何も知らないので、またネットでいろいろと調べなければいけないのですがね。

 

まず調べていくと、最初にモジュールを読み込まないと、データベースへの接続ができないので、まずはインストールしたpymysqlをモジュールとしてインポートする。

import pymysql.cursors

 

この文を最初に記述することにより、pymysqlをインポートし使用できるようにする。

 

しかし、何故cursorsを使用するのか分からなかったので、調べてみると以下のページが詳しく書かれていた。

 

でも、結果的に今の段階では深く考えずに、まずは使えるようにすることがベストと自分では判断した。

 

従って、未だにcursorsについては深く理解できていない。

 

それはさておき、データベースに接続するためには、まず最初にデータベースに接続するためのSQL文を書かなければいけない。

 

conn = pymysql.connect (host = ‘localhost’, user = ‘rasp’, password = ‘****’, db = ‘iotdata’, charaset = ‘utf8’, cursorclass =  pymysql.cursors.DisctCursor)

 

ネットで見つけたサンプルを自分の環境に合わせて変更してみた。最初のconnectの部分は理解できるが、最後のcursorsの部分が未だ理解できていない。

 

まあ呪文のようなものだと、今は理解している。

 

次に、今までに作成し登録済みのデータをまずは呼びだしてみたいと思う。

 

データを読み出すためには、SQL文のselectを使用するのは分かっているので、それをどのように記述するかだと思う。

 

ここでもcursorsが使用されるが、とりあえず真似をしてみる。

[ads]

 

SQL文は分かるが、それ以外の部分で何となくわかるのは

sursor.execute(sql)と言う部分で、SQL文を実装しているのではないかと推測できる。

 

そして、その実行結果を引き取るのが、result = cursor.fetcall()と言う部分。

 

これはexecute(sql)で実行した内容を、fecthallで引き取っているのだと思う。

 

そして、最後がresultの内容を表示するprint文だ。

 

最後に、接続したデータベースを切断して終了するclose。

 

接続プログラム

 

論理的にいけば、特にこの内容で問題なくテーブルのデータをすべて取り出せるはず。

 

実査にこのプログラムを動作させてみた。

結果

 

結果は、見事にデータベース内のあるテーブルのデータをすべて読みだしてくれている。

 

しかも、1行ごとの内容としては、データの前にdateやtemp,humdと言うデータ名称まで付加されている。

 

今回、print文で改行を追加していないため、全データが連続して表示されてしまった。改行を使いすればもっと見やすくなるだろう。

 

まとめ

初めてPython3でデータベースに接続することに調整したが、見事に接続しデータを取り出すことができるようになった。

 

これから挑戦していく内容としては

  1. cronで実行した内容を、テーブルに書き込めるようにする
  2. 登録したデータを読み出し、Webページとして表示する
  3. 登録したデータからグラフを作成し、Webページで表示する

などと、まだまだやるべきことがたくさんある。まずは、cronで採取するデータを自動でテーブルに書き込めるようにすることが最初にやるべき内容。

 

そうすれば、とりあえずはデータを自動で採取しデータベースに蓄積することだけは自動でできるようになるので、そこが最初の完了点だろう。

 

次に、Webサーバーを立ち上げて、データベースに入っているデータを可視化するのが次のステップになると思う。

 

まずはデータの自動記録が最優先項目だ。

 

その前に、もう少しPythonについて学んでいかないと、いちいちネットに頼っていると、バージョン違いから適切でなく、時間をロスする事が多くなる。

 

最低限、コマンドの意味位は理解するようにしたいと思う。

 

また学ぶことが増えた。そろそろ年齢的な問題もあり、メモリがオーバーキャパになりそうだ。

 

 

[twt]

 

 

 

ABOUT ME
じぇいかわさき
進撃の社畜/弱小プロブロガー 本ブログは、還暦で定年の世代の筆者が、まだまだやれるという事を証明するために新たな事に挑戦した事を情報発信しているブログです。同世代の人達に対して、まだまだいろいろと頑張れる、第二の人生を楽しく生きていく為に現状維持は退化、失敗の反対は行動しないことを座右の銘とし、思い立ったことにチャレンジした記録です。また、せっかく稼いだ収益を騙し取られないように、毎日来る迷惑メールなどのネットリテラシーについても情報発信をしています。 このブログは ネットリテラシー ブログ 働くこと について書いており、第二の人生で頑張る同世代の心に刺さる記事を目指してます。人生100年、まだまだがんばれます。 >> Twitterをフォローする