Itu mungkin, tetapi bukan ide yang baik untuk mencampur kode dan data (apa pun - konfigurasi, HTML, dll.), setidaknya karena dua alasan:
- Desain - Anda akan mendapatkan apa yang disebut kopling tinggi . Situasi di mana terdapat banyak ketergantungan, sulit diikuti, dan aplikasi Anda semakin sulit untuk dimodifikasi.
- Keamanan - kredensial Anda cepat atau lambat akan berakhir di beberapa arsip atau repositori cadangan kode. File konfigurasi juga dapat dienkripsi, file py tidak juga. Jika ini adalah aplikasi web, lebih mudah untuk membatasi akses ke file konfigurasi tunggal daripada ke semua file py yang dapat memiliki data sensitif.
Anda masih dapat membuat fungsi penanganan koneksi yang terpisah dan mudah digunakan ini. Namun pindahkan kredensial koneksi Anda ke file konfigurasi terpisah.
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Anda dapat membaca konfigurasi di file py koneksi Anda atau membuatnya lebih global (yaitu singleton?). Jika Anda ingin membaca konfigurasi dalam file koneksi:
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'])
Contoh penggunaan:
import storage
conn = storage.connect()