sql >> Database >  >> RDS >> Mysql

importeer mijn databaseverbinding met python

Het is mogelijk, maar het is om ten minste twee redenen geen goed idee om code en gegevens (alle soorten - configuratie, HTML enz.) te combineren:

  • Ontwerp - je krijgt een zogenaamde hoge koppeling . Situatie waarin er veel afhankelijkheden zijn, moeilijk te volgen en je app steeds moeilijker aan te passen.
  • Beveiliging - uw inloggegevens komen vroeg of laat terecht in een codeback-uparchief of -repository. Config-bestand kan bovendien worden gecodeerd, py-bestand niet echt. Als het een web-app is, is het gemakkelijker om de toegang tot een enkel configuratiebestand te beperken dan tot alle py-bestanden die gevoelige gegevens kunnen bevatten.

U kunt nog steeds deze afzonderlijke, gebruiksvriendelijke functie voor het afhandelen van verbindingen maken. Maar verplaats uw verbindingsgegevens naar een apart configuratiebestand.

config.ini:

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

U kunt de configuratie in uw verbindingspy-bestand lezen of meer globaal maken (dwz singleton?). Als u de configuratie in het verbindingsbestand wilt lezen:

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

Gebruiksvoorbeeld:

import storage

conn = storage.connect()


  1. Kan een tabelveld een koppelteken bevatten?

  2. Meerdere door tabs gescheiden tekstbestanden invoegen in MySQL met Python?

  3. Hoe databasenaam opvragen in Oracle SQL Developer?

  4. Hoe maak je een globaal configuratiebestand aan?