可能ですが、少なくとも2つの理由から、コードとデータ(構成、HTMLなど)を混在させることはお勧めできません。
- デザイン-いわゆる高結合になります 。依存関係が多く、追跡が難しく、アプリの変更がますます困難になる状況。
- セキュリティ-あなたの資格情報は遅かれ早かれ、コードバックアップアーカイブまたはリポジトリに保存されます。設定ファイルはさらに暗号化できますが、pyファイルは実際には暗号化されません。 Webアプリの場合は、単一の構成ファイルへのアクセスを制限する方が、機密データを含む可能性のあるすべてのpyファイルに制限する方が簡単です。
この個別の使いやすい接続処理機能を引き続き作成できます。ただし、接続資格情報を別の構成ファイルに移動してください。
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
接続pyファイルの構成を読み取るか、よりグローバルにすることができます(つまり、シングルトン?)。接続ファイルの構成を読み取りたい場合:
storage.py:
import configparser
import MySQLdb.cursors
config = configparser.ConfigParser()
config.read('config.ini')
def connect():
return MySQLdb.connect(host = config['mysqlDB']['host'],
user = config['mysqlDB']['user'],
passwd = config['mysqlDB']['pass'],
db = config['mysqlDB']['db'])
使用例:
import storage
conn = storage.connect()