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

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

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

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が表示されてしまったとしても、 データベースの情報を知られてしまうことはないでしょう。

まとめ
- pipでconfigparserをダウンロード。
- Connection.iniを作成し、dbc.pyと同じ階層に置く。
- dbc.pyを書き換える。
こんな記事も読まれています。
-
XAMPPでpythonのローカル環境設定をする方法
XAMPPでpythonのローカル環境設定をする方法を紹介します。httpd.confに2行、pythonファイルに3行追加するだけで動かせます。
-
【python】ロリポップサーバーでpythonファイルを表示させる方法
たった3行で、ロリポップサーバーにpythonファイル(Hello Python!)を表示させる方法について紹介します。パーミッションは700に変更させる必要があります。
-
HTMLに直接Pythonを書ける【PyScript】の使い方
PyScriptを使えば、javascriptのように、HTMLに直接Pythonを書いて実行することができます。たった2行のコードをhead内に書くだけで使えます。
-
【python】ローカルサーバー(XAMPP)でMySqlに接続する方法
pythonでMysqlに接続する方法。XAMPPのローカルサーバーでの設定を紹介します。ユーザー名、パスワード、ホスト名、データベース名を知っておく必要があります。
-
リンク
-
【python】mysql-connector-pythonを使って、ロリポップのデータベースにMySqlで接続する
ロリポップのデータベースにpythonでMysql接続する方法を紹介します。スタンダード以上のプランでないとSSH接続ができないので注意。ロリポップ、ユーザー専用ページでユーザー名、ユーザーホストを確認してお九必要があります。
-
【python】configparserを使って、データベース情報を外部に記述し、読み込む
configparserを使って、 データベース名やパスワードを外部ファイルに保存する方法を紹介します。これで、万が一pythonファイルが表示されてしまってもDB情報は外部に記述してあるので安心です。
-
リンク