Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Importiere meine Datenbankverbindung mit Python

Es ist möglich, aber es ist keine gute Idee, Code und Daten (jegliche Art - Konfiguration, HTML usw.) aus mindestens zwei Gründen zu mischen:

  • Design - Sie landen bei der sogenannten hohen Kopplung . Situationen, in denen es viele Abhängigkeiten gibt, die schwer nachzuvollziehen sind und Ihre App immer schwieriger zu ändern ist.
  • Sicherheit – Ihre Zugangsdaten landen früher oder später in einem Code-Backup-Archiv oder Repository. Config-Datei kann zusätzlich verschlüsselt werden, py-Datei nicht wirklich. Wenn es sich um eine Web-App handelt, ist es einfacher, den Zugriff auf eine einzelne Konfigurationsdatei zu beschränken als auf alle Py-Dateien, die sensible Daten enthalten können.

Sie können diese separate, einfach zu verwendende Verbindungsverwaltungsfunktion immer noch erstellen. Aber verschieben Sie Ihre Verbindungsdaten in eine separate Konfigurationsdatei.

config.ini:

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

Sie können die Konfiguration in Ihrer Verbindungs-Py-Datei lesen oder sie globaler machen (dh Singleton?). Wenn Sie die Konfiguration in der Verbindungsdatei lesen möchten:

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

Anwendungsbeispiel:

import storage

conn = storage.connect()