Mysql
 sql >> Database >  >> RDS >> Mysql

importa la mia connessione al database con Python

È possibile, ma non è una buona idea mescolare codice e dati (qualsiasi tipo - configurazione, HTML ecc.), per almeno due motivi:

  • Design:finisci con il cosiddetto accoppiamento elevato . Situazione in cui ci sono molte dipendenze, difficili da seguire e la tua app è sempre più difficile da modificare.
  • Sicurezza:le tue credenziali prima o poi finiscono in qualche archivio o repository di backup del codice. Il file di configurazione può essere ulteriormente crittografato, il file py non è proprio. Se si tratta di un'app Web, è più semplice limitare l'accesso a un singolo file di configurazione, quindi a tutti i file py che possono contenere dati sensibili.

È ancora possibile creare questa funzione di gestione della connessione separata e facile da usare. Ma sposta le tue credenziali di connessione in un file di configurazione separato.

config.ini:

[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'

Puoi leggere la configurazione nel tuo file py di connessione o renderlo più globale (es. singleton?). Se vuoi leggere la configurazione nel file di connessione:

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'])

Esempio di utilizzo:

import storage

conn = storage.connect()