▲TOPへ戻る

【python】configparserを使って、データベース情報を外部に記述し、読み込む

ロリポップ python データベース

前回、pythonでロリポップのデータベースに接続する方法を紹介しました。 しかし、前回の方法では、データベースの情報がpythonファイルに直接記述されていたので、 万が一、そのファイルが表示されてしまった時に、データベースの情報を知られてしまいます。 そこで今回は、configparserを使って、 データベース名やパスワードを外部ファイルに保存する方法を紹介します。

python
【python】mysql-connector-pythonを使って、ロリポップのデータベースにMySqlで接続する

configparserのインストール

Tera TermでSSH接続します。 python3 -m pip listで、リストの中に、configparser がなければ、python3 -m pip install configparserでインストールします。

ロリポップ tera term
pip install configparser

connection.iniの作成

ロリポップ!ユーザー専用ページにログインし、データベースを確認。

データベース

Connection.iniを用意し、dbc.pyと同じ階層に置き、以下のように記述する。

[connection]
user = XXXXXXXX
password =XXXXXXXX
server = XXXXXXXX
database = XXXXXXXX

dbc.pyを書き換える

5行目 : configparserをimport

7-12行目 : Connection.iniの内容を変数へ代入

18-21行目 : Connection.iniの内容と対応させる。

#!/usr/local/bin/python3.7

import mysql.connector
from mysql.connector import errorcode
import configparser

config = configparser.ConfigParser()
config.read('Connection.ini', encoding='utf-8')
user = config.get("connection", "user")
password = config.get("connection", "password")
server = config.get("connection", "server")
database = config.get("connection", "database")

cnx = None

try:
    cnx = mysql.connector.connect(
      user=user,
      password=password,
      host=server,
      db=database
    )

    if cnx.is_connected:
        print("Content-Type: text/html; charset=UTF-8\r\n")
        print("Connected!")

except mysql.connector.Error as e:
    if e.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print("User name or password is invalid.")
    elif e.errno == errorcode.ER_ACCOUNT_HAS_BEEN_LOCKED:
        print("This account is locked.")
    else:
        print(e)

except Exception as e:
    print(f"Error Occurred: {e}")

finally:
    if cnx is not None and cnx.is_connected():
        cnx.close()

接続成功したら、以下が表示されます。これで万が一dbc.pyが表示されてしまったとしても、 データベースの情報を知られてしまうことはないでしょう。

データベース

まとめ

  1. pipでconfigparserをダウンロード。
  2. Connection.iniを作成し、dbc.pyと同じ階層に置く。
  3. dbc.pyを書き換える。

こんな記事も読まれています。

profile

パソコン好きなガオ

コロナ禍によるステイホームを機にプログラミングを学ぶ。パソコンに関してはプロではないが、ちょっと詳しい程度。

パソコン

javascript

カメラ

ブログ